我正在写一个视频转换脚本使用ffmpeg,它已经完成完整。理想情况下,我的视频转换脚本应该将视频输出到多种格式(如YouTube):
我面临的问题是,如果用户上传480 p (854 X 480)视频或接近480 p (854 X 480),脚本将转换为所有格式(1080 p和720 p),这在本例中似乎是对带宽和磁盘空间的浪费。
这个问题并不像看上去那么容易。如果一个用户上传了一个500 x 300的视频,我不希望它被转换成240 p,必须有一些估计。
谁能帮助我,或有经验处理这样的问题?
发布于 2015-03-06 19:58:17
听起来你想先用"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“并根据该值选择不同的”标准大小“。
https://stackoverflow.com/questions/28906410
复制相似问题