复制流更快

复制流更快

我在网上找到了这句话

ffmpeg -i input.mp4 -c:a copy -c:v copy -movflags faststart output.mp4

它接受输入,复制音频、视频,并将 MOOV 原子设置为名为 output.mp4 的元素的开头。基本上是在新的位置使用 MOOV 原子创建相同的视频。

不过,我需要转换这种媒体的类型 - 所以我有以下行

ffmpeg -i input.wmv -vcodec h264 -f mp4 output.mp4

我的问题是,这能在一行中完成吗?我知道我可以一个接一个地运行,但这会创建几个视频,而我只需要生成的视频,这可能会导致大量内存浪费。

我相信这条线

ffmpeg -i input.wmv -movflags faststart -vcodec h264 -f mp4 output.mp4 

是合法的,但如果没有直接的副本,这将需要很长时间来计算。

欢迎有关 MOOV 原子和 ffmpeg 计算的任何意见。

答案1

复制流更快

你的第一个例子就是复制流然后重新定位 moov 原子。此重新定位允许视频在完全下载之前开始播放,例如观众通过浏览器观看您的视频。

ffmpeg -i input.mp4 -codec copy -map 0 -movflags +faststart output.mp4

编码速度较慢

如您的第二个示例所示,编码可能需要很长时间,具体取决于多种因素,包括:输入的复杂性和持续时间、ffmpeg 和 x264 版本的编译方式、版本的使用年限(可能缺少功能、改进和错误修复)、您的 CPU、使用的编码器以及您的编码设置。并非所有这些都可以控制,但您可以确保使用的是最新版本,并且可以更改编码设置以更好地满足您的需求。

获取 FFmpeg

静态构建易于使用:只需下载、提取并运行即可。请参阅FFmpeg 下载页面,了解 Linux、Windows 和 OS X 用户的选项。您还可以编译和几个分步FFmpeg 编译指南可用。

使用预设

使用 x264 编码时,您可以使用更快的编码预设:

ffmpeg -i in.wmv -codec:v libx264 -preset fast -movflags +faststart out.mp4

预设是决定编码效率的选项集合,因此也会影响速度。当前预设为:ultrafast,,,,,,,,,,。默认值为,和,很superfast浪费时间。一般建议使用您有耐心的最慢预设。请参阅veryfastfasterfastmediumslowslowerveryslowplacebomediumplaceboFFmpeg 和 x264 编码指南了解更多信息。

-f mp4不必要的,并且取决于你的 ffmpeg 版本h264是否可以作为编码器名称,它是惯例使用libx264

相关内容