Bug 32382 - Не работают субтитры в mpv 0.19.0
Summary: Не работают субтитры в mpv 0.19.0
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: mpv (show other bugs)
Version: unstable
Hardware: all Linux
: P3 major
Assignee: Evgenii Terechkov
QA Contact: qa-sisyphus
URL: https://github.com/mpv-player/mpv/iss...
Keywords:
Depends on: 33155
Blocks:
  Show dependency tree
 
Reported: 2016-08-16 14:46 MSK by Motsyo Gennadi
Modified: 2017-07-14 23:10 MSK (History)
6 users (show)

See Also:


Attachments
субтитры, извлеченные avconv (3.08 KB, application/x-subrip)
2016-08-18 08:32 MSK, drool
no flags Details
субтитры, извлеченные mkvextract (6.00 KB, application/x-subrip)
2016-08-18 08:33 MSK, drool
no flags Details
subrip patch (1.99 KB, patch)
2016-08-18 09:58 MSK, drool
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Motsyo Gennadi 2016-08-16 14:46:01 MSK
Напоролся, что текущий 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
Comment 1 Repository Robot 2016-08-16 16:38:16 MSK
mpv-0.19.0-alt1 -> sisyphus:

* Tue Aug 16 2016 Terechkov Evgenii <evg@altlinux> 0.19.0-alt1
- 0.19.0 (ALT#32382)
Comment 2 Motsyo Gennadi 2016-08-17 14:18:01 MSK
Хрень какая-то. Не помогло...
======================================================
$ 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
======================================================
Comment 3 Evgenii Terechkov 2016-08-17 17:36:15 MSK
Мне помогло - субтитры стали показываться. Но как сейчас вижу - не во всех случаях помогло. Попробую поковырять. Помощь приветствуется.
Comment 4 Evgenii Terechkov 2016-08-17 18:37:25 MSK
Как видно по коду (файл lavc_conv.c, функция lavc_conv_create) такая ошибка может появляться в результате проблем с 4-мя функциями. Причём три из них в библиотеке libavcodec. Т.е. вероятнее всего, проблема именно там. Возможно, это опять расхождения в API между libav и ffmpeg. С этой точки зрения, возможно, есть смысл попробовать собрать mpv с ffmpeg (на данный момент это таски #168524 и #168537).
Comment 5 Motsyo Gennadi 2016-08-17 21:56:31 MSK
Если будет сборка mpv с ffmpeg - готов попробовать. Но ведь тот же mplayer у нас тоже с libavcodec собирается, и сабы показывает, так может загнать багу разрабам mpv? Или потыкать их палочкой?
Comment 6 Evgenii Terechkov 2016-08-18 04:02:06 MSK
На это нужно время. Со спеком mplayer-а я сходу не разобрался, но в установленном виде он libav не требует (я могу удалить libav* и отвалится только mpv).

Написал разработчикам mpv в том же баге, но видимо сейчас заведу новый.
Comment 7 Evgenii Terechkov 2016-08-18 04:32:28 MSK
Новый баг: https://github.com/mpv-player/mpv/issues/3431
Comment 8 drool 2016-08-18 08:32:26 MSK
Created attachment 6795 [details]
субтитры, извлеченные avconv
Comment 9 drool 2016-08-18 08:33:12 MSK
Created attachment 6796 [details]
субтитры, извлеченные mkvextract
Comment 10 drool 2016-08-18 08:33:28 MSK
Сделал
avconv -i ../Video/Avatar.2009.BDRip.720p.60fps.Ukr.Eng.mkv -an -vn -scodec copy avconv.srt
Библиотека отработала без ошибок, качество извлеченного файла сабов прикладываю вместе с этими же оригинальными сабами.
Comment 11 drool 2016-08-18 09:29:55 MSK
Гугль говорит, что в ffmpeg давным давно был вот такой коммит:
http://git.videolan.org/gitweb.cgi/ffmpeg.git/?p=ffmpeg.git;a=commitdiff;h=2626cc4580bfd560c6983338d77b2c11c16af94f;hp=0bb37bbc0f55f157cb763428baca9b63d3e81108
Специально для поддержки SUBRIP, на который идет ругань. В текущем libav нет ни единого упоминания о AV_CODEC_ID_SUBRIP...
Comment 12 drool 2016-08-18 09:58:47 MSK
Created attachment 6797 [details]
subrip patch
Comment 13 drool 2016-08-18 10:00:17 MSK
На основе гугления соорудил приложенный патч для 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
===========================================================
Может что не так сделал...
Comment 14 Evgenii Terechkov 2016-08-21 17:11:02 MSK
Собрал mpv с ffmpeg-devel из упомянутых тасков (как и рекомендует апстрм в созданном мной тикете). На мой взгляд, проблема полностью решена.

К сожалению, пока не понимаю как можно выложить готовый репозиторий для тестирования. При большом желании можно забрать тег 0.19.0-alt1.1 у меня из гита и собрать его в среде с подключенными тестовыми тасками.
Comment 15 Motsyo Gennadi 2016-08-21 23:26:38 MSK
Так что, получается, багу нужно перевешивать на libav?
Comment 16 Evgenii Terechkov 2016-08-22 03:45:14 MSK
Насколько понимаю, апстрим libav не только успешно игнорирует такие баги, но и плодит новые несовместимости, а силами майнтайнера приводить libav к ffmpeg слишком трудозатрано. Поэтому тенденция в этой области сейчас - мигрировать обратно на ffmpeg. Что я собственно и планирую если/когда в сизифе появится ffmpeg.
Comment 17 drool 2016-08-22 09:44:01 MSK
(В ответ на комментарий №16)
> Насколько понимаю, апстрим libav не только успешно игнорирует такие баги, но и
> плодит новые несовместимости, а силами майнтайнера приводить libav к ffmpeg
> слишком трудозатрано. Поэтому тенденция в этой области сейчас - мигрировать
> обратно на ffmpeg. Что я собственно и планирую если/когда в сизифе появится
> ffmpeg.

Так это нужно делать до того, как выйдет что-то на p8, т.е. практически уже сейчас нужно втягивать в сизиф и p8 ffmpeg.
Comment 18 Motsyo Gennadi 2016-12-07 16:44:18 MSK
Так что делать будете? Ну срамота же, сабы не уметь показывать...
Comment 19 Evgenii Terechkov 2017-06-07 15:30:09 MSK
До сизифа добрался mpv пересобранный с ffmpeg. УМВР.
Comment 20 Motsyo Gennadi 2017-07-14 23:10:23 MSK
(В ответ на комментарий №19)
> До сизифа добрался mpv пересобранный с ffmpeg. УМВР.

Реально ли ждать в 8-м бранче? А то наклепали уже дистров на нем, а сабы там с проблемами.