mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-30 22:25:19 +00:00 
			
		
		
		
	Determine merge container better (See desc) (#1482)
* Determine the container early. Closes #4069 * Use codecs instead of just file extensions * Obey `--prefer-free-formats` * Allow fallbacks in `--merge-output` Authored by: pukkandan, selfisekai
This commit is contained in:
		 Lauren N. Liberda
					Lauren N. Liberda
				
			
				
					committed by
					
						 GitHub
						GitHub
					
				
			
			
				
	
			
			
			 GitHub
						GitHub
					
				
			
						parent
						
							fe0918bb65
						
					
				
				
					commit
					fc61aff41b
				
			| @@ -53,6 +53,7 @@ from yt_dlp.utils import ( | ||||
|     fix_xml_ampersands, | ||||
|     float_or_none, | ||||
|     format_bytes, | ||||
|     get_compatible_ext, | ||||
|     get_element_by_attribute, | ||||
|     get_element_by_class, | ||||
|     get_element_html_by_attribute, | ||||
| @@ -1843,6 +1844,31 @@ Line 1 | ||||
|         self.assertEqual(determine_file_encoding('# coding: utf-32-be'.encode('utf-32-be')), ('utf-32-be', 0)) | ||||
|         self.assertEqual(determine_file_encoding('# coding: utf-16-le'.encode('utf-16-le')), ('utf-16-le', 0)) | ||||
| 
 | ||||
|     def test_get_compatible_ext(self): | ||||
|         self.assertEqual(get_compatible_ext( | ||||
|             vcodecs=[None], acodecs=[None, None], vexts=['mp4'], aexts=['m4a', 'm4a']), 'mkv') | ||||
|         self.assertEqual(get_compatible_ext( | ||||
|             vcodecs=[None], acodecs=[None], vexts=['flv'], aexts=['flv']), 'flv') | ||||
| 
 | ||||
|         self.assertEqual(get_compatible_ext( | ||||
|             vcodecs=[None], acodecs=[None], vexts=['mp4'], aexts=['m4a']), 'mp4') | ||||
|         self.assertEqual(get_compatible_ext( | ||||
|             vcodecs=[None], acodecs=[None], vexts=['mp4'], aexts=['webm']), 'mkv') | ||||
|         self.assertEqual(get_compatible_ext( | ||||
|             vcodecs=[None], acodecs=[None], vexts=['webm'], aexts=['m4a']), 'mkv') | ||||
|         self.assertEqual(get_compatible_ext( | ||||
|             vcodecs=[None], acodecs=[None], vexts=['webm'], aexts=['webm']), 'webm') | ||||
| 
 | ||||
|         self.assertEqual(get_compatible_ext( | ||||
|             vcodecs=['h264'], acodecs=['mp4a'], vexts=['mov'], aexts=['m4a']), 'mp4') | ||||
|         self.assertEqual(get_compatible_ext( | ||||
|             vcodecs=['av01.0.12M.08'], acodecs=['opus'], vexts=['mp4'], aexts=['webm']), 'webm') | ||||
| 
 | ||||
|         self.assertEqual(get_compatible_ext( | ||||
|             vcodecs=['vp9'], acodecs=['opus'], vexts=['webm'], aexts=['webm'], preferences=['flv', 'mp4']), 'mp4') | ||||
|         self.assertEqual(get_compatible_ext( | ||||
|             vcodecs=['av1'], acodecs=['mp4a'], vexts=['webm'], aexts=['m4a'], preferences=('webm', 'mkv')), 'mkv') | ||||
| 
 | ||||
| 
 | ||||
| if __name__ == '__main__': | ||||
|     unittest.main() | ||||
|   | ||||
		Reference in New Issue
	
	Block a user