Следующие команды генерируют два видеоклипа H.264 по 10 секунд каждый с различными предустановленными параметрами (veryslow
и очень veryfast
) и объединяют их в один контейнер MP4.
$ ffmpeg -loglevel quiet -f rawvideo -pix_fmt rgba -s 1920x1080 -r 30 -i /dev/zero -pix_fmt yuv420p -c:v libx264 -preset:v veryslow -t 10 part1.mp4
$ ffmpeg -loglevel quiet -f rawvideo -pix_fmt rgba -s 1920x1080 -r 30 -i /dev/zero -pix_fmt yuv420p -c:v libx264 -preset:v veryfast -t 10 part2.mp4
$ cat list
file part1.mp4
file part2.mp4
$ ffmpeg -f concat -i list -c copy join.mp4
Все идет нормально. Но если я пытаюсь воспроизвести этот файл с помощью ffplay
, я получаю много ошибок, таких как "decode_slice_header error", "недопустимое reordering_of_pic_nums_idc".
Если два клипа оба закодированы с одной и той же предустановкой, проблем нет.
Означает ли это, что я не могу объединить два потока H.264, если они имеют разные параметры кодирования, даже если их размеры, частота кадров и форматы пикселей одинаковы?