23

我想ffmpeg用来将一个转换mp4为“小尺寸” mp4......

我需要一个包含视频和音频的mp4文件(或低成本移动设备支持的其他一些设置)。我主要担心的是视频可以在大多数设备上播放。h263aac

有什么可能的ffmpeg命令来完成这个?

提前致谢。

4

3 回答 3

50

编码 mp4 视频的方法有很多种,而为移动设备编码则更加复杂。我不确定您所说的“低成本移动”是什么意思,是指设备中的低成本,还是播放所述视频所需的带宽?

无论哪种方式,这里有一篇文章可以帮助您:H.264 WEB VIDEO ENCODING TUTORIAL WITH 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

用于存档/存储的高质量标清视频(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

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

基线资料 (BP)

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

于 2012-11-27T09:22:56.020 回答
0
 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"
于 2021-11-03T12:56:45.603 回答
-1

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

ffmpeg -i $input_file -s $size $output_file

$size : 320X400 或任何 WidthXHeight

于 2012-11-28T09:06:57.687 回答