Здравствуйте. Пользуюсь mplayer в Linux, в минималистичном дистрибутиве. Проблема такая: у меня есть небольшой скрипт-wrapper для mplayer с нужными параметрами. Определенное время его хватало, но недавно я попробовал запустить несколько новых фильмов (более новых) и возникла проблема с рассинхронизацией, медленной скоростью и сообщением в консоли о том, что у меня «медленная машина». Между тем машина у меня если и медленная, то не для видео-плеера. Это препятствие я решил добавлением опции -lavdopts threads=4 в wrapper. Новые фильмы заработали отлично, но... перестали запускать старые. Опытным путем выяснилось, что старые фильмы в формате AVI с новым скриптом wrapper показывают черный экран, а в ошибки сыплют сообщениями типа get_buffer() failed [stride changed]. Звук идет нормально. При указании количества threads=1 или при удалении опции они запускаются. (Но тогда плохо работают новые фильмы, которым нужно больше вычислительных ресурсов.) Я думал, что может, не хватает pth. Поставил его, но это не помогло. Думал, что может быть, есть разница в кодеках между файлами, которые играют с threads=4 и которые нет. Я взял небольшую выборку и проверил ffmpeg, но на первый взгляд как рабочие, так нерабочие фильмы - иногда различаются, а иногда практически полностью совпадают по параметрам. Никакой корреляции.
Вопрос, почему mplayer и AVI так плохо дружат с multithreading, если при этом фильмы в формате MP4, с теми же кодеками с этой же опцией отлично работают (и именно благодаря ней)?
Некоторое дерьмо: MPlayer 1.1-4.9.1
фильм, который смог:
Input #0, avi, from 'Avatar.avi':
Metadata:
encoder : VirtualDubMod 1.5.10.2 (build 2542/release)
Duration: 02:35:05.04, start: 0.000000, bitrate: 1862 kb/s
Stream #0:0: Video: mpeg4 (XVID / 0x44495658), yuv420p, 704x400 [SAR 1:1 DAR 44:25], 25 tbr, 25 tbn, 25 tbc
Stream #0:1: Audio: ac3 ([0] [0][0] / 0x2000), 48000 Hz, 5.1(side), fltp, 384 kb/s
Input #0, avi, from 'Johnny English.avi':
Metadata:
encoder : VirtualDubMod 1.5.4.1 (build 2178/release)
Duration: 01:23:50.04, start: 0.000000, bitrate: 2332 kb/s
Stream #0:0: Video: mpeg4 (XVID / 0x44495658), yuv420p, 720x384 [SAR 1:1 DAR 15:8], 25 tbr, 25 tbn, 25 tbc
Stream #0:1: Audio: ac3 ([0] [0][0] / 0x2000), 48000 Hz, 5.1(side), fltp, 384 kb/s