我想ffmpeg
用来将一个转换mp4
为“小尺寸” mp4
......
我需要一个包含视频和音频的mp4
文件(或低成本移动设备支持的其他一些设置)。我主要担心的是视频可以在大多数设备上播放。h263
aac
有什么可能的ffmpeg
命令来完成这个?
提前致谢。
编码 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 年约束基线配置文件定义以来,此配置文件的重要性已有所减弱。所有约束基线配置文件比特流也被视为基线配置文件比特流,因为这两个配置文件共享相同的配置文件标识符代码值。
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