【问题标题】:FFMPEG Merge two videos into one with side-by-side same quality outputFFMPEG 将两个视频合并为一个并排相同质量的输出
【发布时间】:2021-11-11 16:57:22
【问题描述】:

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

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 的新手,我需要一个具体的例子

有人可以帮我吗?

【问题讨论】:

    标签: video ffmpeg


    【解决方案1】:

    无损

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

    ffmpeg -i left.avi -i right.avi -filter_complex hstack -c:v ffv1 output.avi
    

    FFmpeg 支持几种额外的无损压缩格式,例如:

    • 无损 H.264:-c:v libx264 -crf 0
    • huffyuv:-c:v huffyuv
    • ffvhuff:-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

    【讨论】:

      猜你喜欢
      • 2019-03-30
      • 2018-12-27
      • 1970-01-01
      • 2012-05-15
      • 1970-01-01
      • 2015-09-29
      • 2020-07-28
      • 1970-01-01
      • 2018-03-19
      相关资源
      最近更新 更多