我已经在处理 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
我需要一个具体的例子。
有谁能够帮助我?
Lossless
如果您需要“输出视频的质量与输入视频相同”,则必须使用真正的无损格式。 ffv1 的示例使用hstack过滤器而不是电影+垫+覆盖:
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
- 当然还有无损未压缩格式,包括原始视频。
由于它是无损的,输出文件将会很大,您的播放器或设备可能不喜欢它。
视觉无损
当然,您可能真正想要的是“有损,但‘视觉上无损’,但不是像真正的无损提供那样巨大的文件”。在这种情况下使用:
ffmpeg -i left.avi -i right.avi -filter_complex "hstack,format=yuv420p" -c:v libx264 -crf 18 output.mp4
你没有提到音频。如果您想合并每个输入的音频,请使用amerge filter:
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
See FFmpeg 维基:H.264 视频编码.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)