Извлечение субтитров из файлов MKV с помощью ffmpeg или mplayer
Файл MKV, содержащий несколько наборов субтитров, отказывается воспроизводить их на SmartTV или подобных устройствах, вообще не видя субтитров. mplayer управляет файлом без проблем. Вот что в файле:
$ ffprobe input.mkv |& grep Stream Stream #0:0(zxx): Video: h264 (High), yuv420p(progressive), 716x360 [SAR 32:27 DAR 2864:1215], SAR 212:179 DAR 106:45, 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default) Stream #0:1(spa): Audio: ac3, 48000 Hz, stereo, fltp, 224 kb/s (default) Stream #0:2(eng): Subtitle: dvd_subtitle, 720x480 (default) Stream #0:3(fre): Subtitle: subrip Stream #0:4(por): Subtitle: subrip
Я предполагаю, что менее способные игроки не могут справиться с форматами субтитров, отличными от SRT. Вопрос в том, как извлечь существующую дорожку английских субтитров из файла MKV, преобразовать ее в SRT и, необязательно, добавить обратно в файл MKV.
Кроме «Я никогда не видел MP4-файл с субтитрами SRT», другой поток ( Преобразование субтитров DVD в текст ), который задал тот же вопрос, не получил ответа.
Предположительно окончательный https://trac.ffmpeg.org/wiki/ExtractSubtitles содержит информацию, которая не соответствует фактической операции ffmpeg. Это мой ffmpeg:
$ ffmpeg -v ffmpeg version 3.3 Copyright (c) 2000-2017 the FFmpeg developers built with gcc 7.1.0 (GCC) configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64 --mandir=/usr/man --disable-static --enable-shared --enable-runtime-cpudetect --enable-avresample --enable-gpl --enable-version3 --enable-pthreads --enable-postproc --disable-debug --disable-indev=jack --disable-outdev=jack --arch=x86_64 --enable-pic --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-gnutls --enable-libcaca --enable-libcdio --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvorbis --enable-libvpx --enable-libmp3lame --enable-opencl --enable-opengl --enable-libopenjpeg --enable-libpulse --enable-libsmbclient --enable-libwavpack libavutil 55. 58.100 / 55. 58.100 libavcodec 57. 89.100 / 57. 89.100 libavformat 57. 71.100 / 57. 71.100 libavdevice 57. 6.100 / 57. 6.100 libavfilter 6. 82.100 / 6. 82.100 libavresample 3. 5. 0 / 3. 5. 0 libswscale 4. 6.100 / 4. 6.100 libswresample 2. 7.100 / 2. 7.100 libpostproc 54. 5.100 / 54. 5.100
И это то, что я пытался сделать без успеха:
$ ffmpeg -i input.mkv -map 0:2 subs-EN.srt ... Stream mapping: Stream #0:2 -> #0:0 (dvd_subtitle (dvdsub) -> subrip (srt)) Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height $ ffmpeg -codecs | grep dvdsub ... DES... dvd_subtitle DVD subtitles (decoders: dvdsub ) (encoders: dvdsub )
Таким образом, декодер dvdsub скомпилирован в ffmpeg (как и ожидалось, иначе субтитры не будут отображаться в mplayer), но не вызывается для их преобразования.
Я тоже пробовал
$ mplayer -dumpsrtsub -dumpfile subs-EN.srt -sid 0 input.mkv MPlayer 1.3.0-7.1.0 (C) 2000-2016 MPlayer Team ... [lavf] stream 0: video (h264), -vid 0 [lavf] stream 1: audio (ac3), -aid 0, -alang spa [lavf] stream 2: subtitle (dvdsub), -sid 0, -slang eng [lavf] stream 3: subtitle (srt), -sid 1, -slang fre [lavf] stream 4: subtitle (srt), -sid 2, -slang por ...
Правильный поток субтитров воспроизводится, но ничего не записывается в subs-EN.srt.
Что я делаю неправильно?
0 ответов на вопрос
Похожие вопросы
-
2
Ищете бесплатное программное обеспечение Mac для производства DVD с субтитрами
-
2
Как я могу кодировать файл VRO в файл AVI
-
1
Как я могу исправить проблемы с чересстрочной дрожью видео при воспроизведении на DVD-плеерах? (Микш...
-
-
1
Как просматривать видео на veoh.com с помощью HT03-A Android
-
4
Можно ли полностью удалить видеоплеер Ubuntu «Тотем»?
-
1
WMP9 скин для mplayer
-
2
Копировать субтитры с DVD?
-
4
Просмотр DVD в Linux
-
2
заставить mplayer начать с громкости по умолчанию, отличной от 25%
-
1
Как воспроизвести локальную копию DVD в «режиме DVD» с помощью Xine и / или Mplayer?