将 ffmpeg 视频转换为适当的尺寸
Convert a ffmpeg video to an appropriate dimension
我正在用ffmpeg写一个视频转换脚本,已经完成了。理想情况下,我的视频转换脚本应将视频输出为多种格式(如 YouTube):
- 140p: 256 x∆144
- 240p:426 x 240
- 360p: 640 ∼x∼360
- 480p : 854 x 480
- 720p : 1280 x 720
- 1080p : 1920x 1080
我面临的问题是,如果用户上传 480p (854 x 480) 视频或接近 480p (854 x 480) 的视频,脚本将转换为所有格式(1080p 和 720p),这看起来像是在这种情况下浪费带宽和磁盘 space。
问题并不像看起来那么简单。如果用户上传一个 500 x 300 的视频,我不希望它被转换为 240p,必须有一些估计。
谁能帮助我或有解决此类问题的经验?
听起来您想先用 "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" 并根据需要根据该值选择不同的 'standard sizes'。
我正在用ffmpeg写一个视频转换脚本,已经完成了。理想情况下,我的视频转换脚本应将视频输出为多种格式(如 YouTube):
- 140p: 256 x∆144
- 240p:426 x 240
- 360p: 640 ∼x∼360
- 480p : 854 x 480
- 720p : 1280 x 720
- 1080p : 1920x 1080
我面临的问题是,如果用户上传 480p (854 x 480) 视频或接近 480p (854 x 480) 的视频,脚本将转换为所有格式(1080p 和 720p),这看起来像是在这种情况下浪费带宽和磁盘 space。
问题并不像看起来那么简单。如果用户上传一个 500 x 300 的视频,我不希望它被转换为 240p,必须有一些估计。
谁能帮助我或有解决此类问题的经验?
听起来您想先用 "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" 并根据需要根据该值选择不同的 'standard sizes'。