Рассинхрон при конвертировании.

74 views
Skip to first unread message

Jordon Xbc

unread,
Apr 1, 2014, 2:25:46 PM4/1/14
to stream...@googlegroups.com
Всем привет!
Я занимаюсь конвертированием видео в формат MKV c применением кодека х264 через AviSynth.
У меня возникла проблема при конвертировании WMV3 в AVC/H264 (исх.видео см. гдиске).
Конечный результат в рассинхроне видео и аудио ~1500 ms. Странно то, что при просмотре avs-файла все синхронно.
х264 каким-то образом харасит первые 1500 ms и из-за этого идет рассинхрон. 

Я вижу только пару способов как это пофиксить:

1. Выдернуть каким-то образом инфу о задержке из WMV или из контейнера, в данном случае из avi.
Но я не знаю как инфу достать, ибо Mediainfo не видит этого... (см. xml-файл на гдиске);

2. Или x264 настроить таким образом, чтобы он не харасил...
Опять же, пробовал различные ключи конфига, менял версию - ничего не помогло!

Все нужные файлы: 

(видео, xml от Mediainfo, avs, ключи запуска для x264, ну и сам x264)


Перспектива в ручную синхронизировать аудио с видео не очень радует... Надеюсь на вашу помощь! Заранее спасибо!

Max Lapshin

unread,
Apr 2, 2014, 2:08:34 AM4/2/14
to stream...@googlegroups.com
А если ffmpeg транскодировать? 

Jordon Xbc

unread,
Apr 2, 2014, 12:22:57 PM4/2/14
to stream...@googlegroups.com
А поточнее? через ffmpeg использовать тот же x264?
Ща проверю, но мне кажется результат будет тот же..

среда, 2 апреля 2014 г., 13:08:34 UTC+7 пользователь Max Lapshin написал:
А если ffmpeg транскодировать? 

Jordon Xbc

unread,
Apr 2, 2014, 1:04:00 PM4/2/14
to stream...@googlegroups.com
В принципе помогло...
Теперь мне для WMV траскодить промежуточный файл! Или есть еще мысли?

Max Lapshin

unread,
Apr 2, 2014, 1:14:34 PM4/2/14
to stream...@googlegroups.com
Вы можете посмотреть на то, как ffmpeg засовывает фреймы в libx264.

Скорее всего вы получаете рассинхрон из-за того, что неправильно указываете pts у кадров.

С AviSynth я ничем не помогу, потому что это виндовс а её я последний раз видел в 2006-м

Jordon Xbc

unread,
Apr 3, 2014, 1:11:37 PM4/3/14
to stream...@googlegroups.com
Мда... есть такой недостаток у AviSynth! 
Ну а pts я не трогал... я просто указывал постоянный фрейм рейт, т.к. в исходном видео он тоже постоянный.
Спасибо за идею! 
Я тут еще увидел ту самую задержку в транскодированном видео )). Как-то ffmpeg оттуда ее вынул! Щас буду исходя из задержки кодить..

четверг, 3 апреля 2014 г., 0:14:34 UTC+7 пользователь Max Lapshin написал:

Max Lapshin

unread,
Apr 3, 2014, 2:03:44 PM4/3/14
to stream...@googlegroups.com
Вам прежде всего надо смотреть на pts и тогда не будет никаких магических задержек.

Jordon Xbc

unread,
Apr 3, 2014, 5:06:43 PM4/3/14
to stream...@googlegroups.com
Что-то с задержками не выходит :(
 
Такое ощущение, что  в самой видео дорожке переменный фпс, а в контейнере указано, что постоянный...

четверг, 3 апреля 2014 г., 0:14:34 UTC+7 пользователь Max Lapshin написал:
Вы можете посмотреть на то, как ffmpeg засовывает фреймы в libx264.

 Как это сделать? А то я чет догнать не могу!

Jordon Xbc

unread,
Apr 5, 2014, 9:46:51 AM4/5/14
to stream...@googlegroups.com
Спасибо за pts! Я как-то до этого еще не сталкивался с видео с переменной частотой кадров.
Теперь все работает как часы!
Перемуксил исходный файл с помощью mkvmerge и выдернул из полученного файла таймкоды через mkv2vfr. Воткнул полученный таймкод в конечный муксинг с помощью того же mkvmerge.

Вопрос закрыт!

З.Ы. можно ли выдернуть таймкоды через ffmpeg?

пятница, 4 апреля 2014 г., 1:03:44 UTC+7 пользователь Max Lapshin написал:

Max Lapshin

unread,
Apr 5, 2014, 10:19:11 AM4/5/14
to stream...@googlegroups.com
При декодировании с помощью libav во фреймах идут dts и pts.
--
Вы получили это сообщение, поскольку подписаны на группу "streaming-ru".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес streaming-ru...@googlegroups.com.
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.
Reply all
Reply to author
Forward
0 new messages