我正在使用ffmpeg编写视频转换脚本,它已经完成了。理想情况下,我的视频转换脚本应将视频输出为多种格式(如YouTube):
我面临的问题是,如果用户上传480p(854 x 480)视频或接近480p(854 x 480),脚本将转换为所有格式(1080p和720p),这似乎是浪费在这种情况下,带宽和磁盘空间。
这个问题并不像看起来那么容易。如果用户上传了500 x 300的视频我不希望将其转换为240p,则必须进行一些估算。
谁可以帮助我或有这方面的经验?
答案 0 :(得分:1)
听起来你想先用“mplayer -identify”来衡量视频的大小,只转换为标准尺寸(例如)比源尺寸小5%以及下一个更大的标准尺寸
好的,更多细节
mplayer -quiet -identify -vo null -ao null -endpos 0.1 The\ Cat\ Came\ Back.mpg 2>/dev/null | grep ID_VIDEO
给予
ID_VIDEO_ID=0
ID_VIDEO_FORMAT=0x10000001
ID_VIDEO_BITRATE=1150000
ID_VIDEO_WIDTH=352
ID_VIDEO_HEIGHT=240
ID_VIDEO_FPS=29.970
ID_VIDEO_ASPECT=0.0000
ID_VIDEO_CODEC=ffmpeg1
ID_VIDEO_ASPECT=1.3394
假设您将高度乘以宽度并将其减少5%
352*240*0.95 = 80256
然后按顺序浏览标准尺寸列表,如果这个尺寸小于标准尺寸的W * H,则对其进行编码。如果它更大,那么你仍然对它进行编码,但是一旦完成,你就不再编码了。
请注意,您可以查看“ID_VIDEO_ASPECT”,并根据需要选择不同的“标准尺寸”。