LINUX.ORG.RU

Добавление паузы при кодировании видеофайла (ffmpeg)

 ,


0

1

Есть видеофайлы, полученные склеиванием нескольких видеофайлов (своего формата). Пишу demuxer для ffmpeg. Допустим, что склеили два файла, но первый был без звуковой дорожки. Как в demuxer'е сделать так, чтобы в получаемом файле на месте первого видео не было звука? Таймштампы звуковых пакетов, относящихся ко второму видео, я выставляю правильно, но звук все равно сразу начинает воспроизводиться с первым видео. Есть возможность задать задержку в аудиопотоке или нужно добавлять в аудиопоток на место первого видео «беззвучные» звуковые пакеты (и как это сделать)?



Последнее исправление: skyscraper (всего исправлений: 1)

Добавляйте беззвучные пакеты. Создаёте AVFrame с сэмплами тишины, енкодите в AVPacket. Но вообще это изврат. Кстати, я ожидаю, что нормальный проигрыватель должен нормально сыграть такой файл с ямой в звуке. Это Flash играл звук, не глядя на timestampы.

Идейно правильней будет профильтровать аудио фильтром asyncts с min_delta=0. Либо пусть уровень проигрывания разделывается с этим.

Krieger_Od ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.