Напоролся, что текущий mpv не поддерживает субтитры: ====================================================== $ mpv "Агенти U.N.C.L.E.mkv" Playing: Агенти U.N.C.L.E.mkv (+) Video --vid=1 (*) (f) 'Агенти U.N.C.L.E. / The Man from U.N.C.L.E. (2015) BDRip 720p' (h264) (+) Audio --aid=1 --alang=ukr (*) (f) 'AC3 2.0 @ 192 kbps' (ac3) (+) Subs --sid=1 --slang=ukr (*) (f) (subrip) File tags: Title: Агенти U.N.C.L.E. / The Man from U.N.C.L.E. (2015) BDRip 720p [sub/ass] Could not open libavcodec subtitle converter [sub] Could not find subtitle decoder for format 'subrip'. ====================================================== Гугление подтверждает: https://github.com/mpv-player/mpv/issues/2888
mpv-0.19.0-alt1 -> sisyphus: * Tue Aug 16 2016 Terechkov Evgenii <evg@altlinux> 0.19.0-alt1 - 0.19.0 (ALT#32382)
Хрень какая-то. Не помогло... ====================================================== $ rpm -q mpv mpv-0.19.0-alt1 [drool@comp-xeon-cpu-c5173a Films]$ mpv "./Аватар 60fps.mkv" Playing: ./Аватар 60fps.mkv (+) Video --vid=1 (*) 'Avatar 720p, 1280x720, 15000kbps, 59.94fps.' (h264) (+) Audio --aid=1 --alang=ukr (*) 'Ukrainian Dub' (ac3) (+) Subs --sid=1 (*) 'Ukrainian (forced)' (subrip) File tags: Title: Аватар / Avatar (2009) BDRip 720p 60 fps Ukrainian | video by KSaB [sub/ass] Could not open libavcodec subtitle converter [sub] Could not find subtitle decoder for format 'subrip'. AO: [pulse] 48000Hz 5.1(side) 6ch float VO: [opengl] 1280x720 yuv420p ======================================================
Мне помогло - субтитры стали показываться. Но как сейчас вижу - не во всех случаях помогло. Попробую поковырять. Помощь приветствуется.
Как видно по коду (файл lavc_conv.c, функция lavc_conv_create) такая ошибка может появляться в результате проблем с 4-мя функциями. Причём три из них в библиотеке libavcodec. Т.е. вероятнее всего, проблема именно там. Возможно, это опять расхождения в API между libav и ffmpeg. С этой точки зрения, возможно, есть смысл попробовать собрать mpv с ffmpeg (на данный момент это таски #168524 и #168537).
Если будет сборка mpv с ffmpeg - готов попробовать. Но ведь тот же mplayer у нас тоже с libavcodec собирается, и сабы показывает, так может загнать багу разрабам mpv? Или потыкать их палочкой?
На это нужно время. Со спеком mplayer-а я сходу не разобрался, но в установленном виде он libav не требует (я могу удалить libav* и отвалится только mpv). Написал разработчикам mpv в том же баге, но видимо сейчас заведу новый.
Новый баг: https://github.com/mpv-player/mpv/issues/3431
Created attachment 6795 [details] субтитры, извлеченные avconv
Created attachment 6796 [details] субтитры, извлеченные mkvextract
Сделал avconv -i ../Video/Avatar.2009.BDRip.720p.60fps.Ukr.Eng.mkv -an -vn -scodec copy avconv.srt Библиотека отработала без ошибок, качество извлеченного файла сабов прикладываю вместе с этими же оригинальными сабами.
Гугль говорит, что в ffmpeg давным давно был вот такой коммит: http://git.videolan.org/gitweb.cgi/ffmpeg.git/?p=ffmpeg.git;a=commitdiff;h=2626cc4580bfd560c6983338d77b2c11c16af94f;hp=0bb37bbc0f55f157cb763428baca9b63d3e81108 Специально для поддержки SUBRIP, на который идет ругань. В текущем libav нет ни единого упоминания о AV_CODEC_ID_SUBRIP...
Created attachment 6797 [details] subrip patch
На основе гугления соорудил приложенный патч для libav, собрал ее, а потом собрал с ней mpv, обновил и библиотеки и проигрыватель - нифига... =========================================================== mpv "Avatar.2009.BDRip.720p.60fps.Ukr.Eng.mkv" Playing: Avatar.2009.BDRip.720p.60fps.Ukr.Eng.mkv (+) Video --vid=1 (*) 'Avatar 720p, 1280x720, 15000kbps, 59.94fps.' (h264) (+) Audio --aid=1 --alang=ukr (*) 'Ukrainian Dub' (ac3) Audio --aid=2 --alang=eng 'English DTS' (dts) (+) Subs --sid=1 (*) 'Ukrainian (forced)' (subrip) Subs --sid=2 --slang=ukr 'Ukrainian (full)' (subrip) Subs --sid=3 --slang=eng 'Speech of Navi' (ass) Subs --sid=4 'English (full)' (subrip) File tags: Title: Аватар / Avatar (2009) BDRip 720p 60 fps Ukrainian | video by KSaB [sub/ass] Could not open libavcodec subtitle converter [sub] Could not find subtitle decoder for format 'subrip'. AO: [pulse] 48000Hz 5.1(side) 6ch float VO: [opengl] 1280x720 yuv420p =========================================================== Может что не так сделал...
Собрал mpv с ffmpeg-devel из упомянутых тасков (как и рекомендует апстрм в созданном мной тикете). На мой взгляд, проблема полностью решена. К сожалению, пока не понимаю как можно выложить готовый репозиторий для тестирования. При большом желании можно забрать тег 0.19.0-alt1.1 у меня из гита и собрать его в среде с подключенными тестовыми тасками.
Так что, получается, багу нужно перевешивать на libav?
Насколько понимаю, апстрим libav не только успешно игнорирует такие баги, но и плодит новые несовместимости, а силами майнтайнера приводить libav к ffmpeg слишком трудозатрано. Поэтому тенденция в этой области сейчас - мигрировать обратно на ffmpeg. Что я собственно и планирую если/когда в сизифе появится ffmpeg.
(В ответ на комментарий №16) > Насколько понимаю, апстрим libav не только успешно игнорирует такие баги, но и > плодит новые несовместимости, а силами майнтайнера приводить libav к ffmpeg > слишком трудозатрано. Поэтому тенденция в этой области сейчас - мигрировать > обратно на ffmpeg. Что я собственно и планирую если/когда в сизифе появится > ffmpeg. Так это нужно делать до того, как выйдет что-то на p8, т.е. практически уже сейчас нужно втягивать в сизиф и p8 ffmpeg.
Так что делать будете? Ну срамота же, сабы не уметь показывать...
До сизифа добрался mpv пересобранный с ffmpeg. УМВР.
(В ответ на комментарий №19) > До сизифа добрался mpv пересобранный с ffmpeg. УМВР. Реально ли ждать в 8-м бранче? А то наклепали уже дистров на нем, а сабы там с проблемами.