Summary: | Не работают субтитры в mpv 0.19.0 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Product: | Sisyphus | Reporter: | Motsyo Gennadi <drool> | ||||||||
Component: | mpv | Assignee: | Evgenii Terechkov <evg> | ||||||||
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus | ||||||||
Severity: | major | ||||||||||
Priority: | P3 | CC: | aen, cas, drool, evg, lav, vkni | ||||||||
Version: | unstable | ||||||||||
Hardware: | all | ||||||||||
OS: | Linux | ||||||||||
URL: | https://github.com/mpv-player/mpv/issues/3431 | ||||||||||
Bug Depends on: | 33155 | ||||||||||
Bug Blocks: | |||||||||||
Attachments: |
|
Description
Motsyo Gennadi
2016-08-16 14:46:01 MSK
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 в том же баге, но видимо сейчас заведу новый. 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-м бранче? А то наклепали уже дистров на нем, а сабы там с проблемами. |