ytdl-org / youtube-dl

Command-line program to download videos from YouTube.com and other video sites
http://ytdl-org.github.io/youtube-dl/
The Unlicense
131.98k stars 10.01k forks source link

Unable to embed subtitles in mp4 #6750

Closed keybounce closed 9 years ago

keybounce commented 9 years ago

My understanding is that mp4 files are supposed to support embedded subtitles. I have no trouble downloading separate subtitles, but as soon as I toss in "--embed-subs", it dies

keybounceMBP:Dungeon michael$ youtube-dl  --sub-lang enUS --write-sub --embed-subs --recode-video mp4 http://www.crunchyroll.com/is-it-wrong-to-try-to-pick-up-girls-
in-a-dungeon
[crunchyroll:playlist] is-it-wrong-to-try-to-pick-up-girls-in-a-dungeon: Downloading webpage
[download] Downloading playlist: Is It Wrong to Try to Pick Up Girls in a Dungeon?
[crunchyroll:playlist] playlist Is It Wrong to Try to Pick Up Girls in a Dungeon?: Collected 13 video ids (downloading 13 of them)
[download] Downloading video 1 of 13
[Crunchyroll] 678135: Downloading webpage
[Crunchyroll] 678135: Downloading media info
[Crunchyroll] 678135: Downloading media info for 360p
[Crunchyroll] 678135: Checking 360p URL
[Crunchyroll] 678135: Downloading media info for 480p
[Crunchyroll] 678135: Checking 480p URL
[Crunchyroll] 678135: Downloading media info for 720p
[Crunchyroll] 678135: Checking 720p URL
[Crunchyroll] 678135: Downloading media info for 720p
[Crunchyroll] 678135: Checking 720p URL
[Crunchyroll] 678135: Downloading media info for 1080p
[Crunchyroll] 678135: Checking 1080p URL
[Crunchyroll] 678135: Downloading media info for 1080p
[Crunchyroll] 678135: Checking 1080p URL
[Crunchyroll] 678135: Downloading subtitles for English (US)
[Crunchyroll] 678135: Downloading subtitles for Español
[Crunchyroll] 678135: Downloading subtitles for Português (Brasil)
[Crunchyroll] 678135: Downloading subtitles for العربية
[info] Writing video subtitles to: Is It Wrong to Try to Pick Up Girls in a Dungeon Episode 1 – Bell Cranel _ Adventurer.enUS.ass
[download] Destination: Is It Wrong to Try to Pick Up Girls in a Dungeon Episode 1 – Bell Cranel _ Adventurer.mp4
[download] 100% of 147.00MiB in 01:52
[ffmpeg] Not converting video file Is It Wrong to Try to Pick Up Girls in a Dungeon Episode 1 – Bell Cranel _ Adventurer.mp4 - already is in target format mp4
[ffmpeg] Embedding subtitles in 'Is It Wrong to Try to Pick Up Girls in a Dungeon Episode 1 – Bell Cranel _ Adventurer.mp4'
ERROR: Unknown encoder 'mov_text'
keybounceMBP:Dungeon michael$ 
jaimeMF commented 9 years ago

Note that as far as I know libav can't embed subtitles in an mp4 file, only ffmpeg.

Post the full output with the --verbose option. That series is not available in my country, can you reproduce the problem with other videos like http://www.crunchyroll.com/naruto-shippuden/episode-1-homecoming-509768 ?

keybounce commented 9 years ago

Output from Dungeon:

keybounceMBP:Dungeon michael$ youtube-dl --verbose  --sub-lang enUS --write-sub --embed-subs --recode-video mp4 http://www.
crunchyroll.com/is-it-wrong-to-try-to-pick-up-girls-in-a-dungeon
[debug] System config: []
[debug] User config: [u'-f', u'[height <=?480]', u'--no-mtime', u'-o', u'%(title)s.%(ext)s']
[debug] Command-line args: [u'--verbose', u'--sub-lang', u'enUS', u'--write-sub', u'--embed-subs', u'--recode-video', u'mp4', u'http://www.crunchyroll.com/is-it-wrong-to-try-to-pick-up-girls-in-a-dungeon']
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2015.09.03
[debug] Python version 2.7.5 - Darwin-13.4.0-x86_64-i386-64bit
[debug] exe versions: ffmpeg 0.11.1-tessus, rtmpdump 2.4
[debug] Proxy map: {}
[crunchyroll:playlist] is-it-wrong-to-try-to-pick-up-girls-in-a-dungeon: Downloading webpage
[download] Downloading playlist: Is It Wrong to Try to Pick Up Girls in a Dungeon?
[crunchyroll:playlist] playlist Is It Wrong to Try to Pick Up Girls in a Dungeon?: Collected 13 video ids (downloading 13 of them)
[download] Downloading video 1 of 13
[Crunchyroll] 678135: Downloading webpage
[Crunchyroll] 678135: Downloading media info
[Crunchyroll] 678135: Downloading media info for 360p
[Crunchyroll] 678135: Checking 360p URL
[Crunchyroll] 678135: Downloading media info for 480p
[Crunchyroll] 678135: Checking 480p URL
[Crunchyroll] 678135: Downloading media info for 720p
[Crunchyroll] 678135: Checking 720p URL
[Crunchyroll] 678135: Downloading media info for 720p
[Crunchyroll] 678135: Checking 720p URL
[Crunchyroll] 678135: Downloading media info for 1080p
[Crunchyroll] 678135: Checking 1080p URL
[Crunchyroll] 678135: Downloading media info for 1080p
[Crunchyroll] 678135: Checking 1080p URL
[Crunchyroll] 678135: Downloading subtitles for English (US)
[Crunchyroll] 678135: Downloading subtitles for Español
[Crunchyroll] 678135: Downloading subtitles for Português (Brasil)
[Crunchyroll] 678135: Downloading subtitles for العربية
[info] Writing video subtitles to: Is It Wrong to Try to Pick Up Girls in a Dungeon Episode 1 – Bell Cranel _ Adventurer.enUS.ass
[debug] Invoking downloader on u'http://v.lvlt.crcdn.net/c20/s/ve1759517/video.mp4?nvb=20150905162750&nva=20150905202850&token=0c29c12e9a8e8a9347082'
[download] Is It Wrong to Try to Pick Up Girls in a Dungeon Episode 1 – Bell Cranel _ Adventurer.mp4 has already been downloaded
[download] 100% of 147.00MiB
[ffmpeg] Not converting video file Is It Wrong to Try to Pick Up Girls in a Dungeon Episode 1 – Bell Cranel _ Adventurer.mp4 - already is in target format mp4
[ffmpeg] Embedding subtitles in 'Is It Wrong to Try to Pick Up Girls in a Dungeon Episode 1 – Bell Cranel _ Adventurer.mp4'
[debug] ffmpeg command line: ffmpeg -y -i 'Is It Wrong to Try to Pick Up Girls in a Dungeon Episode 1 – Bell Cranel _ Adventurer.mp4' -i 'Is It Wrong to Try to Pick Up Girls in a Dungeon Episode 1 – Bell Cranel _ Adventurer.enUS.ass' -map 0 -c copy -map -0:s -c:s mov_text -map 1:0 -metadata:s:s:0 language=eng 'Is It Wrong to Try to Pick Up Girls in a Dungeon Episode 1 – Bell Cranel _ Adventurer.temp.mp4'
ERROR: Unknown encoder 'mov_text'
Traceback (most recent call last):
  File "/Users/michael/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 1699, in post_process
    files_to_delete, info = pp.run(info)
  File "/Users/michael/bin/youtube-dl/youtube_dl/postprocessor/ffmpeg.py", line 347, in run
    self.run_ffmpeg_multiple_files(input_files, temp_filename, opts)
  File "/Users/michael/bin/youtube-dl/youtube_dl/postprocessor/ffmpeg.py", line 151, in run_ffmpeg_multiple_files
    raise FFmpegPostProcessorError(msg)
FFmpegPostProcessorError

Output from Naruto:

keybounceMBP:Dungeon michael$ youtube-dl --verbose  --sub-lang enUS --write-sub --embed-subs --recode-video mp4  http://www
.crunchyroll.com/naruto-shippuden/episode-1-homecoming-509768
[debug] System config: []
[debug] User config: [u'-f', u'[height <=?480]', u'--no-mtime', u'-o', u'%(title)s.%(ext)s']
[debug] Command-line args: [u'--verbose', u'--sub-lang', u'enUS', u'--write-sub', u'--embed-subs', u'--recode-video', u'mp4', u'http://www.crunchyroll.com/naruto-shippuden/episode-1-homecoming-509768']
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2015.09.03
[debug] Python version 2.7.5 - Darwin-13.4.0-x86_64-i386-64bit
[debug] exe versions: ffmpeg 0.11.1-tessus, rtmpdump 2.4
[debug] Proxy map: {}
[Crunchyroll] 509768: Downloading webpage
[Crunchyroll] 509768: Downloading media info
[Crunchyroll] 509768: Downloading media info for 360p
[Crunchyroll] 509768: Checking 360p URL
[Crunchyroll] 509768: Downloading media info for 480p
[Crunchyroll] 509768: Checking 480p URL
[Crunchyroll] 509768: Downloading subtitles for 한국어
[Crunchyroll] 509768: Downloading subtitles for English (US)
[Crunchyroll] 509768: Downloading subtitles for Türkçe
[info] Writing video subtitles to: Naruto Shippuden - The Kazekage's Rescue Episode 1 – Homecoming.enUS.ass
[debug] Invoking downloader on u'http://v.lvlt.crcdn.net/c7/s/ve953279/v2/video.mp4?nvb=20150905162907&nva=20150905203007&token=0b89671eb6626ec358470'
[download] Destination: Naruto Shippuden - The Kazekage's Rescue Episode 1 – Homecoming.mp4
[download] 100% of 109.02MiB in 01:20
[ffmpeg] Not converting video file Naruto Shippuden - The Kazekage's Rescue Episode 1 – Homecoming.mp4 - already is in target format mp4
[ffmpeg] Embedding subtitles in 'Naruto Shippuden - The Kazekage's Rescue Episode 1 – Homecoming.mp4'
[debug] ffmpeg command line: ffmpeg -y -i 'Naruto Shippuden - The Kazekage'"'"'s Rescue Episode 1 – Homecoming.mp4' -i 'Naruto Shippuden - The Kazekage'"'"'s Rescue Episode 1 – Homecoming.enUS.ass' -map 0 -c copy -map -0:s -c:s mov_text -map 1:0 -metadata:s:s:0 language=eng 'Naruto Shippuden - The Kazekage'"'"'s Rescue Episode 1 – Homecoming.temp.mp4'
ERROR: Unknown encoder 'mov_text'
Traceback (most recent call last):
  File "/Users/michael/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 1699, in post_process
    files_to_delete, info = pp.run(info)
  File "/Users/michael/bin/youtube-dl/youtube_dl/postprocessor/ffmpeg.py", line 347, in run
    self.run_ffmpeg_multiple_files(input_files, temp_filename, opts)
  File "/Users/michael/bin/youtube-dl/youtube_dl/postprocessor/ffmpeg.py", line 151, in run_ffmpeg_multiple_files
    raise FFmpegPostProcessorError(msg)
FFmpegPostProcessorError

Version:

keybounceMBP:Dungeon michael$ youtube-dl --version
2015.09.03
dstftw commented 9 years ago

Update ffmpeg.

keybounce commented 9 years ago

Thank you.