gpt4 book ai didi

video - FFMPEG 将两个视频合并为一个并排相同质量的输出

转载 作者:行者123 更新时间:2023-12-03 15:25:10 43 4
gpt4 key购买 nike

我已经在处理 3d 视频项目,但我遇到了问题,我得到了左右 channel 的视频,需要将其并排合并。我已经阅读了一些关于这个问题的博客,我得到了这个代码:

ffmpeg -i avatar35l.avi -vf "movie=avatar35r.avi [in1]; [in]pad=1920*2:1080[in0]; [in0][in1] overlay=1920:0 [out]" avatar35sbs.avi

它可以工作,但是我的质量损失很大,我需要与输入视频相同的输出视频质量,30fps,1080p,相同的长度,我是 ffmpeg 的新手,我需要一个具体的例子

有谁能够帮我?

最佳答案

无损
如果您需要“与输入视频相同的输出视频质量”,则必须使用真正的无损格式。使用 hstack 的 ffv1 示例过滤而不是电影+垫+覆盖:

ffmpeg -i left.avi -i right.avi -filter_complex hstack -c:v ffv1 output.avi
FFmpeg 支持几种额外的无损压缩格式,例如:
  • 无损 H.264:-c:v libx264 -crf 0
  • 哈夫尤夫:-c:v huffyuv
  • 嘘:-c:v ffvhuff
  • UT 视频:-c:v utvideo
  • 当然还有无损未压缩格式,包括 rawvideo。

  • 由于它是无损的,因此输出文件会很大,您的播放器或设备可能不会喜欢它。
    视觉无损
    当然,您可能真正想要的是“有损,但'视觉无损',但不是像真正无损提供的巨大、巨大的文件”。在这种情况下使用:
    ffmpeg -i left.avi -i right.avi -filter_complex "hstack,format=yuv420p" -c:v libx264 -crf 18 output.mp4
    你没有提到音频。如果您还想合并来自每个输入的音频,请使用 amerge筛选:
    ffmpeg -i left.avi -i right.avi -filter_complex "[0:v][1:v]hstack,format=yuv420p[v];[0:a][1:a]amerge[a]" -map "[v]" -map "[a]" -c:v libx264 -crf 18 -ac 2 output.mp4
    FFmpeg Wiki: H.264 Video Encoding .

    关于video - FFMPEG 将两个视频合并为一个并排相同质量的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42255139/

    43 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com