FFmpeg之ffprobe查看流信息

今天遇到一个问题,用七牛短视频sdk转码后视频变模糊了,得到大神提示后,立马去查看了一番,原来转码后视频B-frame丢失了

补充知识点
  • profile=baseline的视频不包含B帧
  • 同等码率的视频B帧越多,清晰度越高,但是编码与解码的复杂度也是越高,所以需要合理的设置B帧,尤其是衡量清晰度与码率的时候
统计视频I、B、P帧

ffprobe -v quiet -show_frames transcoded123.mp4 | grep "pict_type=B" | wc -l

控制台输出0,表示这个视频没有B帧,如果要查看I帧和P帧,修改pict_type=I或者P即可
如果需要看关键帧,grep “key_frame=1”

插入B帧

ffmpeg -i transcoded123.mp4 -c:v libx264 -x264opts "bframes=3:b-adapt=0" -g 50 -sc_threshold 0 insertBframe.mp4
在transcoded123.mp4视频中,设置gop长度为50,I帧和B帧之间插入3个B帧,并且设置切换场景不插入关键帧

*** 参数释意 ***

  • bframes :设定I帧与P帧之间的最大B帧数量,范围0~16
  • b-adapt : B帧自适应方法,默认为1
    0: Disabled
    1: Fast
    2: Optimal (slow with high --bframes)
  • -sc_threshold :转场时插入B帧
  • -g 设置GOP,每50帧插入一个关键帧

接下来继续看一下插入关键帧后的视频有多少个B帧

注意:这里虽然插入了B帧,仍然不能改善原视频transcode123.mp4的画质,基础建设决定上层建筑

json格式查看视频的详细信息

ffprobe -v quiet -show_format -show_streams -print_format json hotoktest.mp4
会以json格式输出"streams"音视频编码信息和“format”音视频封包信息

ffprobe其他常用options解析
  • -show_packets:[PACKET]标签的多媒体信息
  • -show_data: packets多媒体数据
  • -show_format:多媒体封装格式
  • -show_frames: 视频帧信息
  • -print_format: 信息输出格式,支持xml、csv、json、flat、ini
  • -select_streams: 参数可以是a、v、s分别表示只查看音频、视频、字幕
  • 5
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值