Как экспортировать видео с лучшим качеством при минимальном размере файла в Final Cut Pro X?

У меня есть два клипа в формате MP4. Каждый клип 150 МБ. Я хочу объединить два клипа в один, что, по логике, создаст файл размером 300 МБ.

Я использую Final Cut Pro X для достижения этой цели. В результате получается невероятно большой файл: 1,5 ГБ. Как так? Так что вы, ребята, делаете в этом случае, чтобы объединить два клипа и сохранить размер файла, как это должно быть?

Я предоставил примеры клипов, которые хочу объединить: один и два.

2 ответа

Решение

Ваш исходный материал закодирован со сжатием с потерями. Чтобы сохранить качество видео после редактирования, его необходимо будет экспортировать с сжатием без потерь, что гораздо менее эффективно и, следовательно, приводит к увеличению размера файла.

Альтернативой является перекодирование материала с использованием алгоритма с потерями, но даже если вы имитируете настройки сжатия оригинальных клипов, качество будет ухудшаться. Это называется "потерей поколения". В Википедии есть хороший наглядный пример, относящийся к повторному кодированию изображений JPEG большое количество раз. Конечно, вы можете экспортировать видео с произвольным алгоритмом сжатия, чтобы уменьшить ухудшение качества за счет файла большего размера или наоборот.

Если вы просто объединяете два клипа с одинаковым кодированием и последовательным воспроизведением в один файл и не занимаетесь никаким другим редактированием, возможно, можно создать новый файл без перекодирования, но путем объединения необработанного содержимого файла и манипулирования им. в действительный.mp4. Я подозреваю, что Final Cut Pro не может сделать это, но могут быть инструменты, такие как YAMB.

Предполагая, что клипы MP4 имеют все одинаковые настройки (размер кадра, битрейт и т. Д.) И используют видео h264 и аудио AAC, это можно сделать в командной строке с помощью ffmpeg.

Простой, но менее эффективный способ сделать это:

ffmpeg -i input0.mp4 -c copy -bsf h264_mp4toannexb temp0.ts
ffmpeg -i input1.mp4 -c copy -bsf h264_mp4toannexb temp1.ts
ffmpeg -i "concat:temp0.ts|temp1.ts" -c copy -absf aac_adtstoasc output.mp4

Немного более сложный способ, который не требует создания промежуточных файлов:

mkfifo temp1 temp2
ffmpeg -i input1.mp4 -c copy -bsf h264_mp4toannexb -f mpegts temp1 2> /dev/null & \
ffmpeg -i input2.mp4 -c copy -bsf h264_mp4toannexb -f mpegts temp2 2> /dev/null & \
ffmpeg -f mpegts -i "concat:temp1|temp2" -c copy -absf aac_asdstoacs output.mp4

Любой из них будет полностью без потерь.

Я заметил, что вы решили проблему, связанную с FCP, используя правильные настройки, согласно этому комментарию ...

Другие вопросы по тегам