我已经在处理 3d 视频项目,但我遇到了问题,我需要将视频的左右通道并排合并。我已经阅读了一些关于这个问题的博客,我得到了这个代码:
ffmpeg -i avatar35l.avi -vf "movie=avatar35r.avi [in1]; [in]pad=1920*2:1080[in0]; [in0][in1] overlay=1920:0 [out]" avatar35sbs.avi
Run Code Online (Sandbox Code Playgroud)
它有效,但我的质量损失很大,我需要与输入视频相同的输出视频质量,30fps,1080p,相同的长度,我是 ffmpeg 的新手,我需要一个具体的例子
有谁能够帮助我?
llo*_*gan 16
如果您需要“与输入视频质量相同的输出视频质量”,则必须使用真正的无损格式。ffv1 使用hstack过滤器代替电影+pad+overlay 的示例:
ffmpeg -i left.avi -i right.avi -filter_complex hstack -c:v ffv1 output.avi
Run Code Online (Sandbox Code Playgroud)
FFmpeg 支持几种额外的无损压缩格式,例如:
-c:v libx264 -crf 0-c:v huffyuv-c:v ffvhuff-c:v utvideo由于它是无损的,因此输出文件会很大,您的播放器或设备可能不喜欢它。
当然,您可能真正想要的是“有损,但'视觉上无损',但不是像真正无损提供的巨大的、巨大的文件”。在这种情况下使用:
ffmpeg -i left.avi -i right.avi -filter_complex "hstack,format=yuv420p" -c:v libx264 -crf 18 output.mp4
Run Code Online (Sandbox Code Playgroud)
你没有提到音频。如果您还想合并来自每个输入的音频,请使用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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13224 次 |
| 最近记录: |