如何在 Final Cut Pro X 中以最小的文件大小导出最佳质量的视频?

如何在 Final Cut Pro X 中以最小的文件大小导出最佳质量的视频?

我有两个 mp4 视频片段。每个片段大小为 150 MB。我想将两个片段合并为一个,从逻辑上讲,这将生成一个 300 MB 的文件。

我使用 Final Cut Pro X 来实现这一点。结果是一个非常大的文件:惊人的 1.5 GB。这是怎么回事?那么你们在这种情况下如何合并两个剪辑并保持文件大小不变呢?

我提供了想要合并的示例剪辑:

答案1

您的源材料采用有损压缩编码。为了在编辑后保持视频质量,视频必须以无损压缩导出,但效率低下,文件大小也较大。

另一种方法是使用有损算法对素材进行重新编码,但即使你模仿原始剪辑的压缩设置,质量也会受到影响。这被称为“代损失”。维基百科有一个很好的视觉示例涉及多次重新编码 JPEG 图像。当然,您可以使用任意压缩算法导出视频,以减少质量下降,但文件较大,反之亦然。

如果您只是将两个以类似方式编码并连续播放的剪辑合并为一个文件,而不进行其他编辑,则可能无需重新编码即可创建新文件,只需合并原始文件内容并将其处理为有效的 .mp4 即可。我怀疑 Final Cut Pro 无法做到这一点,但可能有一些工具可以做到这一点,例如山药

答案2

假设 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 特定问题...

相关内容