mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-30 22:25:19 +00:00 
			
		
		
		
	Add ability to embed subtitles in mkv files (closes #5434)
This commit is contained in:
		 Nikoli
					Nikoli
				
			
				
					committed by
					
						 Jaime Marquínez Ferrándiz
						Jaime Marquínez Ferrándiz
					
				
			
			
				
	
			
			
			 Jaime Marquínez Ferrándiz
						Jaime Marquínez Ferrándiz
					
				
			
						parent
						
							861e65eb05
						
					
				
				
					commit
					083c1bb960
				
			| @@ -216,7 +216,7 @@ which means you can modify it, redistribute it or use it however you like. | ||||
|     --recode-video FORMAT            Encode the video to another format if necessary (currently supported: mp4|flv|ogg|webm|mkv) | ||||
|     -k, --keep-video                 Keep the video file on disk after the post-processing; the video is erased by default | ||||
|     --no-post-overwrites             Do not overwrite post-processed files; the post-processed files are overwritten by default | ||||
|     --embed-subs                     Embed subtitles in the video (only for mp4 videos) | ||||
|     --embed-subs                     Embed subtitles in the video (only for mkv and mp4 videos) | ||||
|     --embed-thumbnail                Embed thumbnail in the audio as cover art | ||||
|     --add-metadata                   Write metadata to the video file | ||||
|     --metadata-from-title FORMAT     Parse additional metadata like song title / artist from the video title. The format syntax is the same as --output, the parsed | ||||
|   | ||||
| @@ -698,7 +698,7 @@ def parseOpts(overrideArguments=None): | ||||
|     postproc.add_option( | ||||
|         '--embed-subs', | ||||
|         action='store_true', dest='embedsubtitles', default=False, | ||||
|         help='Embed subtitles in the video (only for mp4 videos)') | ||||
|         help='Embed subtitles in the video (only for mkv and mp4 videos)') | ||||
|     postproc.add_option( | ||||
|         '--embed-thumbnail', | ||||
|         action='store_true', dest='embedthumbnail', default=False, | ||||
|   | ||||
| @@ -501,8 +501,8 @@ class FFmpegEmbedSubtitlePP(FFmpegPostProcessor): | ||||
|         return cls._lang_map.get(code[:2]) | ||||
|  | ||||
|     def run(self, information): | ||||
|         if information['ext'] != 'mp4': | ||||
|             self._downloader.to_screen('[ffmpeg] Subtitles can only be embedded in mp4 files') | ||||
|         if information['ext'] not in ['mp4', 'mkv']: | ||||
|             self._downloader.to_screen('[ffmpeg] Subtitles can only be embedded in mp4 or mkv files') | ||||
|             return [], information | ||||
|         subtitles = information.get('requested_subtitles') | ||||
|         if not subtitles: | ||||
| @@ -520,8 +520,9 @@ class FFmpegEmbedSubtitlePP(FFmpegPostProcessor): | ||||
|             # Don't copy the existing subtitles, we may be running the | ||||
|             # postprocessor a second time | ||||
|             '-map', '-0:s', | ||||
|             '-c:s', 'mov_text', | ||||
|         ] | ||||
|         if information['ext'] == 'mp4': | ||||
|             opts += ['-c:s', 'mov_text'] | ||||
|         for (i, lang) in enumerate(sub_langs): | ||||
|             opts.extend(['-map', '%d:0' % (i + 1)]) | ||||
|             lang_code = self._conver_lang_code(lang) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user