使用FFMPEG将mp4转换为最大移动支持的mp4



我想使用ffmpegmp4转换为"低大小"mp4。。。

我需要一个带有h263视频和aac音频的mp4文件(或低成本手机支持的一些其他设置)。我主要担心的是视频可以在大多数设备上播放。

有哪些可能的ffmpeg命令可以实现这一点?

提前谢谢。

对mp4视频进行编码的方法有很多,而对移动设备进行编码则更为复杂。我不知道你所说的"低成本手机"是什么意思,你指的是设备的低成本,还是播放所述视频所需的带宽?

无论哪种方式,这里有一个帖子让你开始:H.264网络视频编码教程与FFMPEG

示例

以下是文章中的一些ffmpeg示例。。。

"标准"网络视频(480p,500kbit/s):

ffmpeg -i input_file.avi -vcodec libx264 -vprofile high -preset slow -b:v 500k -maxrate 500k -bufsize 1000k -vf scale=-1:480 -threads 0 -acodec libvo_aacenc -b:a 128k output_file.mp4

适用于较旧手机的360p视频(基线时为250kbit/s时为360p配置文件):

ffmpeg -i inputfile.avi -vcodec libx264 -vprofile baseline -preset slow -b:v 250k -maxrate 250k -bufsize 500k -vf scale=-1:360 -threads 0 -acodec libvo_aacenc -ab 96k output.mp4

适用于iPad和平板电脑的480p视频(主配置文件中的480p速度为400kbit/s):

ffmpeg -i inputfile.avi -vcodec libx264 -vprofile main -preset slow -b:v 400k -maxrate 400k -bufsize 800k -vf scale=-1:480 -threads 0 -acodec libvo_aacenc -ab 128k output.mp4

用于存档/存储的高质量SD视频(PAL高达1Mbit/s配置文件):

ffmpeg -i inputfile.avi -vcodec libx264 -vprofile high -preset slower -b:v 1000k -vf scale=-1:576 -threads 0 -acodec libvo_aacenc -ab 196k output.mp4

比特率、规模和配置文件

从那里的例子来看,你可能需要注意的一些关键事情是。。。

-b:v 500k

-b:a 128k

这些是视频v和音频a的比特率,数字越低,质量越低,但在低端设备上可能"播放"得越好。

scale=-1:480

这将把视频缩小到更小的尺寸,请参阅帖子中的更多信息)

-vprofile baseline

这个看似奇怪的baseline(或另一个合适的配置文件参数)在为某些较低成本(例如Android)设备编码时可能很重要。。。

基线配置文件(BP)

主要用于需要额外数据丢失的低成本应用程序鲁棒性,该配置文件用于一些视频会议和移动设备应用程序。此配置文件包括中支持的所有功能受约束的基线纵断面,以及三个附加功能可用于损失稳健性(或用于其他目的,例如低延迟多点视频流合成)。自2009年受约束的基线配置文件。所有受约束的基线配置文件比特流也被认为是基线配置文件比特流,如这两个配置文件共享相同的配置文件标识符代码值。

ffmpeg.exe -i "input.mp4" -vcodec mpeg4 -preset slower -b:v 1000k -vf "scale=640:480,setsar=1,fps=30,pad=640:480:0:0" -acodec aac -ac 2 -ar 22050 -ab 128k "output (480p).mp4"

我找到了答案,无论如何都感谢你的帮助。

ffmpeg -i $input_file -s $size $output_file

$size:320X400或任何WidthXHeight

最新更新