Я пытаюсь выполнить редактирование фильма в автоматическом режиме с помощью avconv. Это делается в два этапа:
- извлечь некоторые части входного фильма:
- объединить части, чтобы сформировать выходной фильм:
Я пробовал некоторые комбинации контейнеров и кодеков для промежуточных и выходных фильмов, но это всегда приводило к одной из следующих ситуаций:
звук становится все более и более задержанным во время воспроизведения выходного фильма. Кажется, что каждый переход соединенных частей увеличивает задержку звука. Это происходит, например, со следующими форматами и кодеками:
avconv -i input-movie.avi -ss $TIME_1 -vframes $NUMFRAMES_1 -f avi -q 1 -aq 1 -y movie-part1.avi avconv -i input-movie.avi -ss $TIME_2 -vframes $NUMFRAMES_2 -f avi -q 1 -aq 1 -y movie-part2.avi ... avconv -i input-movie.avi -ss $TIME_N -vframes $NUMFRAMES_N -f avi -q 1 -aq 1 -y movie-partN.avi avconv -i concat:movie-part1.avi|movie-part2.avi|...|movie-partN.avi -f avi -codec mpeg4 -q 1 -acodec libmp3lame -aq 1 -y output-movie.avi
Аудио и видео в выходном фильме синхронизированы, но они длиннее, чем должны быть. В этой ситуации выходные данные
avprobe -show_streams output-movie
показывают продолжительность, а видеоnb_frames
длиннее, чем ожидалось, хотя при запускеavconv -i output-video -f image2 %06d.jpg
ожидаемое количество файлов кадров jpg (ожидаемое количество кадров равно$NUMFRAMES_1 + $NUMFRAMES_2 + ... + $NUMFRAMES_N
). Это происходит, например, со следующими форматами и кодеками:avconv -i input-movie.avi -ss $TIME_1 -vframes $NUMFRAMES_1 -f mpeg -q 1 -aq 1 -y movie-part1.mpeg avconv -i input-movie.avi -ss $TIME_2 -vframes $NUMFRAMES_2 -f mpeg -q 1 -aq 1 -y movie-part2.mpeg ... avconv -i input-movie.avi -ss $TIME_N -vframes $NUMFRAMES_N -f mpeg -q 1 -aq 1 -y movie-partN.mpeg avconv -i concat:movie-part1.mpeg|movie-part2.mpeg|...|movie-partN.mpeg -f avi -codec mpeg4 -q 1 -acodec libmp3lame -aq 1 -y output-movie.avi
Существует ли надежный / точный способ выполнения этих операций и получения результирующего фильма с синхронизацией аудио и видео с ожидаемым количеством кадров?