ffmpeg编码mp4视频,实现剪裁任意片段,播放流畅

问题:在播放剪裁得到的MP4视频片段时,常常遇到卡顿、音画不同步等异常情况

原因分析:mp4视频是使用mpeg-4编码,压缩过的视频。压缩的基本原理是,将组成视频的帧分为两大类关键帧和普通帧。关键帧是一张完整的图片,包含当前帧的完整图像信息,而普通帧则需要依赖之前的关键帧来恢复图像。这样子,就可以减小视频文件的大小,又保持较高的清晰度。

凡是压缩过的视频,都包含关键帧。这里的压缩是指,对原始的视频文件内容进行编码,而不是文件级别的压缩。

在剪裁视频的时候,开始的时间点如果不是关键帧,那么剪裁到的视频片段,在播放时就会卡顿。片段视频的开头是一些普通帧,解码器无法找打关键帧,无法恢复普通帧的图像,无法进行正常解码。

知道了原因,就有解决办法了,增加关键帧的数量,每一帧都是关键帧,任意剪裁点,都是关键帧,播放就不会卡顿了。

ffmpeg通过keyint_min和gop_size来表示关键帧的最小和最大间隔数

具体命令如下

ffmpeg -i input.mp4  -g 1 -keyint_min 1 output.mp4

-g 关键帧的最大间隔

-keyint_min 关键帧的最小间隔

最大和最小都是1。

可能出现的问题:画面细微的不清晰

参考:

https://www.cnblogs.com/soief/archive/2013/12/12/3471465.html

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值