首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将ffmpeg视频转换为适当的维度。

将ffmpeg视频转换为适当的维度。
EN

Stack Overflow用户
提问于 2015-03-06 19:42:53
回答 1查看 842关注 0票数 0

我正在写一个视频转换脚本使用ffmpeg,它已经完成完整。理想情况下,我的视频转换脚本应该将视频输出到多种格式(如YouTube):

  • 140 p: 256 x 144
  • 240页: 426 x 240
  • 360 p: 640 x 360
  • 480 p: 854 x 480
  • 720页: 1280 x 720
  • 1080页:1920 x 1080

我面临的问题是,如果用户上传480 p (854 X 480)视频或接近480 p (854 X 480),脚本将转换为所有格式(1080 p和720 p),这在本例中似乎是对带宽和磁盘空间的浪费。

这个问题并不像看上去那么容易。如果一个用户上传了一个500 x 300的视频,我不希望它被转换成240 p,必须有一些估计。

谁能帮助我,或有经验处理这样的问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-06 19:58:17

听起来你想先用"mplayer -identify“之类的东西来测量视频的大小,并且只转换成比源的大小小5%的标准大小,再加上下一个更大的标准大小。

好吧,更多细节

代码语言:javascript
复制
mplayer -quiet  -identify -vo null -ao null -endpos 0.1 The\ Cat\ Came\ Back.mpg 2>/dev/null  | grep ID_VIDEO

给出

代码语言:javascript
复制
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%。

代码语言:javascript
复制
352*240*0.95 = 80256

然后按照顺序遍历您的标准尺寸列表,如果这个小于标准大小的W*H,则对其进行编码。如果它更大,那么您仍然对其进行编码,但是一旦完成,您就不再编码了。

注意,如果您愿意,可以查看"ID_VIDEO_ASPECT“并根据该值选择不同的”标准大小“。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28906410

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档