Я уже читал другие статьи о конкатенации, но не смог найти ни одной, в которой обсуждалось бы указание выходного битрейта.
У меня есть 2 видео в формате MP4.
Что я хочу сделать, так это ускорить первое видео до скорости 110% (без изменения высоты звука), а затем соединить его со вторым видео (которое останется с нормальной скоростью), и я хочу, чтобы результирующее видео имело битрейт 2,5. Мбит/с (поскольку Wistia сказала мне, что это должно быть минимумом для моей загрузки).
В настоящее время моя первая попытка приводит к видео, где вторая часть полностью искажена и показывает ярко-зеленый цвет и т. д. Моя вторая попытка (шаг 4) приводит к видео с общим битрейтом всего 1645 кбит/с.
Шаг 1:
В Adobe Premiere Pro CC 2017 я экспортировал 2 видео, каждое из которых использовало следующие настройки:
Frame Rate: 30
Field Order: Progressive
Aspect: Square Pixels (1.0)
Profile: Main
Bitrate Encoding: CBR
Target Bitrate [Mbps]: 2.5
Audio Format: AAC
Audio Codec: AAC
Sample Rate: 48000 Hz
Bitrate [kbps]: 320
Шаг 2.
ffmpeg -i video1.mp4 -filter_complex "setpts=PTS/1.1;atempo=1.1" -c:v libx264 -x264-params "nal-hrd=cbr" -b:v 2.5M -minrate 2.5M -maxrate 2.5M -bufsize 5M video1_faster.mp4
Шаг 3. Создайте текстовый файл такого содержания:
file 'video1_faster.mp4'
file 'video2.mp4'
Шаг 4 (первая попытка).
ffmpeg -f concat -safe 0 -i ffmpeg_concat_list.txt -c copy final.mp4
Шаг 4 (вторая попытка) (с перекодированием).
ffmpeg -i video1_faster.mp4 -i video2.mp4 -filter_complex "[0:v] [0:a] [1:v] [1:a] concat=n=2:v=1:a=1 [v] [a]" -map "[v]" -map "[a]" -b:v 2.5M -minrate 2.5M -maxrate 2.5M -bufsize 5M final.mp4
Что я делаю неправильно? Спасибо.
Шаг 4 (первая попытка) будет работать, если вы перекодируете второе видео так же, как и первое (без фильтров).
Что происходит, так это то, что помимо разницы во времени между выходом CC и ffmpeg (что приведет только к ошибкам синхронизации), x264 создает поток высокого профиля с другим набором параметров, чем кодировщик CC. Перекодируйте второе видео с помощью ffmpeg, и ваши файлы должны совпадать. Кроме того, вы можете ускорить в CC и экспортировать 1-е видео.
Это, казалось, работало (примерно *):
ffmpeg -i video1_faster.mp4 -i video2.mp4 -filter_complex "[0:v] [0:a] [1:v] [1:a] concat=n=2:v=1:a=1 [v] [a]" -map "[v]" -map "[a]" -c:v libx264 -x264-params "nal-hrd=cbr" -b:v 2.5M -minrate 2.5M -maxrate 2.5M -bufsize 5M final.mp4
Обратите внимание, как я пропустил -c:v libx264 -x264-params "nal-hrd=cbr"
часть в «Шаг 4 (вторая попытка)» в моем вопросе выше.
* Это уменьшило битрейт аудио до 103 кбит/с, хотя битрейт аудио 2 входных файлов был 317 кбит/с и 127 кбит/с. Поэтому мой следующий проект будет заключаться в том, чтобы попытаться выяснить, как улучшить Шаг 2, чтобы сохранить битрейт аудио исходного файла, а затем улучшить Шаг 4, чтобы снова сохранить битрейт аудио.
Я определенно предпочел бы принять чей-то (лучший) ответ.
роджерпак
Райан
version N-82889-g54931fd Copyright (c) 2000-2016 the FFmpeg developers built with gcc 5.4.0 (GCC)
роджерпак