LINUX.ORG.RU

Какие параметры поставить в Blender, чтобы небыло рассинхронизации видео и звука на отрендеренном видео?

 , ,


2

1

Здравстуйте!

Никак не могу подобрать параметры генерируемого видео, чтобы не получить рассинхронизации видео и звука (сейчас видео убегает вперед).

В самом секвенсоре никакой рассинхронизации нет. FPS стоит равный FPS сырого видео.

Пробовал:

Output: H.264
Format: H.264

Output: H.264
Format: AVI
Codec: H.264

Output: Xvid
Format: AVI
Codec: Divx

Output: Xvid
Format: AVI
Codec: FFmpeg video codec #1

Везде видео рассинхронизировано со звуком и убегает вперед (что странно, обычно видео тормозит относительно звука).

Вопрос: какие параметры нужно ставить, чтоб получить нормальное видео?

UPD:

При проигрывани mplayer сыпет в консоль такими сообщениями:

Too many video packets in the buffer: (300 in 134645386 bytes).
Maybe you are playing a non-interleaved stream/file or the codec failed?
For AVI files, try to force non-interleaved mode with the -ni option.
A:  52.6 V:  33.9 A-V: 18.773 ct:  3.387   0/  0 120% 15%  2.4% 194 0

А vlc сыпет такое:

[b011c078] core decoder error: Could not convert timestamp 56691659892
[b011c078] clock decoder error: Timestamp conversion failed (delay 300000, buffering 100000, bound 3000000)
[b011c078] core decoder error: Could not convert timestamp 56694701706
[b011c078] clock decoder error: Timestamp conversion failed (delay 300000, buffering 100000, bound 3000000)
★★★★★

Я рендерил через ffmpeg, было всё отл. Там есть не совсем очевидная опция вывода - mpeg, которая на самом деле ffmpeg, с возможностью настраивать формат и параметры кодирования чуть ниже, в разделе encoding. Формат у меня был mpeg-4, кодек - h264.

FPS исходника и проекта в блендере должны совпадать до долей. Кстати, звуковую дорожку можно было отдельно сохранять. Попробуй экспортни и посмотри на длительность одной звуковой дорожки, сравни с количеством кадров делённым на FPS. А если отрендерить небольшой кусок ближе к концу - есть расхождение?

anonymous ()
Ответ на: комментарий от anonymous

Расхождение не ближе к концу, а почти сначала. На 2000 кадрах при 15 Fps расхождение более 10 сек к 2000 кадру. Это капец какой то.

FPS совпадает до долей, ровно 15 fps для исходного видео, в этот же фреймрейт и кодирую. Когда добавляю новый стрип, видео и звук четко одинаковой длины.

Попробую mpeg покрутить. Но такой сюрприз мне очень не нравится, трехнедельная работа коту под хвост.

Xintrea ★★★★★ ()
Ответ на: комментарий от anonymous

Походу, кое-что нащупал. Возможно, проблема в аудио-кодеке AAC.

Для видео поставил просто:

Output: H.264
Format: H.264

А для аудио указал Mp3 на 192 кбит (у меня там только голос).

И волшебным образом появилась синхронизация. Это я проверил на первых 2000 кадрах. Щас попробую на всем ролике.

Только есть нерешенная проблема. В исходном видео звук идет моно на одном канале. Нужно прокинуть на второй канал, чтоб в одном ухе не звучало. Пока не понял как это сделать в Blender.

Xintrea ★★★★★ ()

Можешь дать файл любого размера, на котором можно убедиться, что есть расинхрон, я кроме блендера попробую на MODO еще, интереса ради.

slon ()

У меня предвзятое отношение к AVI. Почему-то в этом контейнере у меня всегда были проблемы при кодировании в VirtualDub. Стоило хоть раз разлучить дорожки, синхронизация терялась навсегда.

Возьми другой контейнер, mkv или mp4.

i-rinat ★★★★★ ()
Ответ на: комментарий от Xintrea

Output: H.264
Format: H.264

Он так в avi сохраняет. Я может сейчас не точно помню, но, вроде, avi с aac не очень дружит. Поставь output:mpeg, format:mpeg-4, codec:h264.

Попробуй отрендерить отдельно видео и аудио. Там в разделе render есть кнопка audio, которая сохраняет только звук в выбираемом далее формате. Выбирай wav или flac. Если фильм длинный, то может долго сохранять, интерфейс при этом вешается после нажатия кнопки mixdown, этого не надо пугаться ) При рендеринге видео лучше выбрать None для кодека звука, тогда для микширования потом в консольке можно будет написать ffmpeg -i video.avi -i audio.wav -c:v copy -c:a aac -b:a 192k video_audio.mp4.

Чтобы сделать из стерео моно, выбери в блендере аудиодорожку и справа на панели поставь галку mono. Количество каналов и частота дискретизации выбираются в user preferences на вкладке system. Если там стоит 2 канала, то при экспорте у тебя будет два канала, независимо от того, что все стрипы в моно, но звук будет моно.

А в исходниках звук в каком формате? Хуже если при монтаже он не успевал декодироваться. Не знаю как с aac, а с флаком такое вполне может быть.

anonymous ()
Ответ на: комментарий от anonymous

Чтобы сделать из стерео моно, выбери в блендере аудиодорожку и справа на панели поставь галку mono.
https://imgur.com/a/4EtiW

У меня такой галки нет

http://i.piccy.info/i9/46e458ccbc330133e9c415c7c418fc86/1478363438/23559/8259...

Xintrea ★★★★★ ()
Ответ на: комментарий от Xintrea

А какая версия блендера у тебя? Из репов поди? Скачивай последнюю с сайта. Но в любом случае, если ты потом будешь через ffmpeg склеивать, то опция '-ac 1' переводит звук в одноканальный.

anonymous ()

Рассинхрон тоже ловил на первых парах изучения блендера. Понял, что рассинхрон если аудио в ogg. Перестал экспериментировать и выбираю mp3 или aac. У тебя и с aac такой косяк, но может виной blender 2.7.2. Кстати в бекпортах стабильного дебиан вроде есть blender 2.7.4. Всё же новее, попробуй его.

Necrogrinder ()