如何解决如何使用 ffmpeg 水平分割我的视频没有任何其他副作用?
我正在处理我的视频(640 X 1280 尺寸)。我想将我的视频水平分成 2 个单独的视频(每个视频的尺寸现在为 640 X 640),然后将它们水平组合(视频尺寸现在为 1280 X 640)在一个视频中。我在网上做了研究,我的问题同时解决了,但没有同时解决
ffmpeg -i input.mp4 -filter_complex "[0]crop=iw:ih/2:0:0[top];[0]crop=iw:ih/2:0:oh[bottom]" -map "[top]" top.mp4 -map "[bottom]" bottom.mp4
ffmpeg -i top.mp4 -i bottom.mp4 -filter_complex hstack output.mp4
是的,我的任务解决了,但也出现了许多其他问题:-
1.) 我的输出视频中没有音频。不知道为什么最后结果没有音频
2.) 我的主要视频文件(我正在执行所有这些操作)大小为 258 MB。但结果只有 38 MB 大小。不知道发生了什么?更糟糕的是,我仔细查看了视频,结果非常相似(与输入文件相比,只有输出文件中的动画不如输入文件流畅)
3.) 花费太多时间(我知道计算需要一些时间,但也许有一些方法/牺牲可以使过程更快)
预先感谢您帮助我
解决方法
结合你的两个命令
ffmpeg -i input.mp4 -filter_complex "[0]crop=iw:ih/2:0:0[top];[0]crop=iw:ih/2:0:oh[bottom];[top][bottom]hstack" -preset fast -c:a copy output.mp4
-
如果您需要更快地编码,请使用更快的
-preset
,如 FFmpeg Wiki: H.264 所示。 -
x264 是比手机更好的编码器,因此文件更小也就不足为奇了。
或者用你的播放器来做
无需等待编码。只需让您的播放器在播放时执行所有操作即可。这不会输出文件,而只会播放重新排列的视频。使用 mpv 的示例:
mpv --lavfi-complex="[vid1]split[v0][v1];[v0]crop=iw:ih/2:0:0[c0];[v1]crop=iw:ih/2:0:oh[c1];[c0][c1]hstack[vo]" input.mp4
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。