ffmpeg多种码率控制方式的实现

本文总结了ffmpeg视频编码时的码率控制方式,包括平均码率(abr)、限制码率(crf)和固定质量(cqp)。ffmpeg通过AVCodecContext参数设置实现不同控制,如bit_rate对应abr,不设置则默认crf,自定义控制需借助av_opt_set函数。
摘要由CSDN通过智能技术生成

ffmpeg是我们进行视频编解码常用的工具,而对于ffmpeg中编码时对码率的控制方式一直没找合适的教程,无意中在stackoverflow上发现了答案,在此进行总结备忘。

视频编码器常用的码率控制方式包括abr(平均码率),crf(限制码率),cqp(固定质量),ffmpeg中AVCodecContext显示提供了码率大小的控制参数,但是并没有提供其他的控制方式。ffmpeg中码率控制方式分为以下几种情况:

1.如果设置了AVCodecContext中bit_rate的大小,则采用abr的控制方式;

2.如果没有设置AVCodecContext中的bit_rate,则默认按照crf方式编码,crf默认大小为23(此值类似于qp值,同样表示视频质量);

3.如果用户想自己设置,则需要借助av_opt_set函数设置AVCodecContext的priv_data参数。下面给出三种控制方式的实现代码:


                
这个是试用版,如果您下载后本授权已经过期可联系我们。 关于几个参数的标准: 1. 同步周期:软件每隔多少秒就会查询指定的文件夹有没有需要转码的视频文件,如果上传量大可以设置短一些。 2. 最大任务数:软件同时执行转码任务的数量,只要你服务器够强大,完全可以马力全开,设置几十个也不是问题。 3. 是否删除文件:源视频文件是否在转码完成后删除?0为不删除,1为删除。 4. 视频来源目录:举例“d:\WWW\web”,末尾无需\或者/,如果视频文件在其他目录,确保该路径没有符号和空格。 5. 转码格式:指的是要把哪些格式的视频转码为mp4,多个视频格式|分隔,比如flv|mpg|mpeg|avi|vod 如果还有其他格式要转 继续在后面添加,原视频格式可以和输出格式相同,比如原来是mp4文件转码出来也是可以是mp4文件,这样原来的mp4文件会根据设置的参数进行重新处理,让视频更符合网络视频播放规范。 6. 码率:设为500效果比较好,是压缩率和清晰度都能均衡到的最好设置,数字越小 画质越差,视频文件越小,反之亦然,设置为0则保持原来视频的码率,可转高清视频。如果原视频码率低于设置码率,则保持原视频码率输出(低画质视频,强制升高码率只会让文件变得更大,但对画质并无改善,故作此设置),如果原视频码率大于设置码率则降低码率按设置码率输出。 7. 是否切片:如果需要把视频分段存放,则勾选。 a. 分片前缀:因为播放器要读取xml里面分段视频的绝对路径,这里需要设置一个相对于网站根目录的绝对地址。 b. 是否保留原文件:这里的源文件是指转码为整个mp4后的视频文件,如果你的视频需要在移动设备播放,xml列表的播放效果可能不太完美,你就需要保留这个整体的mp4文件在移动端播放,当然不需要你也可以删除,只保留分段的视频文件。 8. 分辨率:保持原视频分辨率设置为0 如果要固定分辨率设置为如:720x480 9. 水印:无需水印设置为0,水印设置标准 10:10 从右上角起距左、距右各10像素,具体要求,自己多调试。 :为英文符号,水印图片的名称必须为watermark.png,否则会错。 10. 图片参数:135*71,新版是随机截取视频图片,135*71是图片大小,如需多图截取则用|分隔多个像素,比如135*71|320*240|480*720,不同图片的截取方便缩略图在网站不同位置调用或选择。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值