ffmpeg 编解码 码率设置问题 CBR 、VBR
之前都是利用硬件进行视频流的编解码
最近 在利用ffmpeg 编解码在CPU上进行软解软编码
之前别的硬件平台设置码率和vbr cbr的时候 提供了接口直接设置一下就可以
但是ffmpeg这里 并没有直接提供这样的接口
网上搜了很多 比如下面这个:
av_opt_set(encoder->av_encode_ctx->priv_data, "preset", "superfast", 0);//av_opt_set(encoder->av_encode_ctx->priv_data, "tune", "zerolatency", 0);av_opt_set(encoder->av_encode_ctx->priv_data, "nal-hrd", "cbr", 0);//av_opt_set(encoder->av_encode_ctx->priv_data, "crf", "51", AV_OPT_SEARCH_CHILDREN);encoder->av_encode_ctx->rc_min_rate = bitrate;encoder->av_encode_ctx->rc_max_rate = bitrate;encoder->av_encode_ctx->rc_buffer_size = bitrate*2 ;encoder->av_encode_ctx->bit_rate = bitrate;//encoder->av_encode_ctx->bit_rate_tolerance = bitrate;//encoder->av_encode_ctx->rc_initial_buffer_occupancy = encoder->av_encode_ctx->rc_buffer_size*3/4;encoder->av_encode_ctx->refs = 2;encoder->av_encode_ctx->me_range = 16;encoder->av_encode_ctx->max_qdiff = 4;encoder->av_encode_ctx->qmin = 10;encoder->av_encode_ctx->qmax = 51;encoder->av_encode_ctx->qcompress = 0.6;encoder->av_encode_ctx->qblur = 0.0;encoder->av_encode_ctx->spatial_cplx_masking = 0.3;encoder->av_encode_ctx->me_pre_cmp = 2;encoder->av_encode_ctx->b_quant_factor = 1.25;encoder->av_encode_ctx->b_quant_offset = 1.25;encoder->av_encode_ctx->i_quant_factor = 0.8;encoder->av_encode_ctx->i_quant_offset = 0.0;encoder->av_encode_ctx->dct_algo = 0;encoder->av_encode_ctx->mb_lmin = 1;encoder->av_encode_ctx->mb_lmax = 5;encoder->av_encode_ctx->lumi_masking = 0.0;encoder->av_encode_ctx->dark_masking = 0.0;encoder->av_encode_ctx->global_quality = 10;encoder->av_encode_ctx->qblur = 0;encoder->av_encode_ctx->spatial_cplx_masking =0.3f;encoder->av_encode_ctx->dct_algo =0;
这个证明不行
包括网上有个什么聊天记录的 那个 试了也不行 (也许他用的是老版本吧 反正我的试了不行4.3.2版本)
后来 同事给了一个 ffmpeg推流 码率能设置的参数 如下
ffmpeg -rtsp_transport tcp -r 25 -i rtsp://uer:gd123456@192.168.2.121:554/Streaming/Channels/101 -an -vcodec libx264 -g 30 -crf 30 -strict -2 -s 600*400 -preset faster -profile:v main -x264-params bitrate=300 -sc_threshold 1000000000 -f flv rtmp://192.168.35.75:1987/live/qmcy1111
然后分析 ffmpeg.c文件 百度 google
最终发现如下方式 可以设置可以实现 CBR方式
别的都没用
这么一行就可以 结果很简单 探索的过程 确相当坎坷 。。。。。。。。。
哎 !!!!!!!!!!!!!!!!
明天试试VBR 怎么搞
ffmpeg 编解码 码率设置问题 CBR 、VBR相关推荐
- FFmpeg在Windows上通过dshow编解码方式设置为mjpeg并实时显示测试代码
Windows上默认的内置摄像头一般支持两种编解码格式:rawvideo和mjpeg.在调用FFmpeg接口时默认的采用rawvideo.这里通过DirectShow实现为mjpeg进行编解码. 通过 ...
- FFmpeg编解码常用API和数据结构
一.简述 本文主要介绍FFmpeg 编程中用到的基础知识,包含常见音视频概念,常用API函数,常用结构体,解封装流程,解复用器流程以及注册等. 二.常见音视频概念 容器/文件( Conainer/Fi ...
- ffmpeg编解码应用
http://blog.csdn.net/shendan00/article/details/18839793 1命令语法 使用语法 ffmpeg[[options][`-i' input_file] ...
- 【FFmpeg】FFmpeg编解码H264产生马赛克、伪影的解决方法
1.问题描述 使用FFmpeg编码H264,再解码显示时,产生马赛克:有时是在画面静止时,静止时间越长,马赛克.伪影越多:有时是在画面切入切出时:有时是在网络带宽不够时 2.原因分析 2.1 丢帧 网 ...
- ffmpeg编解码详细过程
1. 注册所有容器格式和CODEC:av_register_all() 2. 打开文件:av_open_input_file() 3. 从文件中提取流信息:av_find_stream_info() ...
- 视频直播流程以及ffmpeg编解码流程
去年最流行的非视频直播莫属,出现了几百家的直播平台,毕竟自己也是在直播平台做开发的,然后就写一篇关于直播的文章.这里只说流程,具体的实现就不说了,应付面试应该还是可以的. 先上一张简单的流程图: 上面 ...
- ffmpeg 编解码流程
去年最流行的非视频直播莫属,出现了几百家的直播平台,毕竟自己也是在直播平台做开发的,然后就写一篇关于直播的文章.这里只说流程,具体的实现就不说了,应付面试应该还是可以的. 先上一张简单的流程图: 上面 ...
- ffmpeg编解码格式
首先要分清楚媒体文件和编码的区别: 文件是既包括视频又包括音频.甚至还带有脚本的一个集合,也可以叫容器: 文件当中的视频和音频的压缩算法才是具体的编码. 也就是说一个.avi文件,当中的视频可能是编码 ...
- FFmpeg编解码处理1-转码全流程简介
https://www.cnblogs.com/leisure_chn/p/10584901.html
最新文章
- 《Go并发编程实战》第2版 紧跟Go的1.8版本
- Unknown lifecycle phase mvn
- idea配置 Tomcat Deployment添加时没有Artifact...选择的解决方案
- python中的_init_的含义
- [Python学习] 专题三.字符串的基础知识
- spring核心配置文件引入外部properties文件和另外的xml配置文件
- Ansible 七(ad hoc任务)
- 生成26个大小写字母和0-9的六位随机验证码(python3.X)
- uni-app(vue小程序)学习笔记
- mysql 嵌入式linux版本_PHP专栏 : MySQL 数据库安装详细
- 基于winsock的局域网聊天室实现
- 阿里EasyExcel对Excel复杂模版填充实现并设置单元格格式
- 第四章:前缀和、差分(数列)
- [BJDCTF 2nd] 燕言燕语-y1ng
- 港澳出入境通行证办事流程
- 2019年研究生数学建模E题加拿大站点数据批量下载
- ActivityNet数据集解析
- 刚当部门经理的一点小感悟,定时更新……
- 快手客户端开发面试(一二三+HR面)
- SpringCloud项目如何成功打包以及其中的一些坑