ffmpeg H264 编解码配置
ffmpeg H264编解码前面有文章介绍下,本文主要介绍一些参数配置。
编码:
int InitEncoderCodec( int iWidth, int iHeight)
{AVCodec * pH264Codec = avcodec_find_encoder(AV_CODEC_ID_H264);if(NULL == pH264Codec){printf("%s", "avcodec_find_encoder failed");return -1;}outPutEncContext = avcodec_alloc_context3(pH264Codec);outPutEncContext->gop_size = 30;outPutEncContext->has_b_frames = 0;outPutEncContext->max_b_frames = 0;outPutEncContext->codec_id = pH264Codec->id;outPutEncContext->time_base.num = 2;outPutEncContext->time_base.den = 15;outPutEncContext->pix_fmt = *pH264Codec->pix_fmts;outPutEncContext->width = iWidth;outPutEncContext->height = iHeight;outPutEncContext->qmin = 34;outPutEncContext->qmax = 50;AVDictionary *options = nullptr;outPutEncContext->flags |= AV_CODEC_FLAG_GLOBAL_HEADER; av_opt_set(outPutEncContext->priv_data,"tune","zerolatency",0); av_dict_set(&options,"preset","ultrafast",0);int ret = avcodec_open2(outPutEncContext, pH264Codec, &options);if (ret < 0){printf("%s", "open codec failed");return ret;}return 1;
}
解码:
codecContext->flags |=CODEC_FLAG_LOW_DELAY;
编码codec 的time_base实际上表示视频的帧率,qmin,qmax决定了编码的质量,qmin,qmax越大编码的质量越差。zerolatency参数的作用是提搞编码的实时性。
解码codec 加上CODEC_FLAG_LOW_DELAY,可提高解码速度(低延时)。
视频教程 播放地址: http://www.iqiyi.com/u/1426749687
转载于:https://www.cnblogs.com/wanggang123/p/6346787.html
ffmpeg H264 编解码配置相关推荐
- WebRTC android 端支持H264编解码
一.WebRTC源码中默认使用的H264编解码的库 1.WebRTC源码的video_coding模块中,包含了H264编解码相关的类 打开画红线的两个头文件,分别可以看到解码类中导入了ffmpeg的 ...
- CrossWalk WebView添加支持WebRTC及H264编解码
前言 1.WebView简介 WebView是Android平台上的一个非常重要的系统组件,用于将一个显示浏览器页面的窗口嵌入到应用程序,并提供一组接口让开发者定制一些页面加载及JavaScript对 ...
- 音视频开发系列--H264编解码总结
一.概述 H264,通常也被称之为H264/AVC(或者H.264/MPEG-4 AVC或MPEG-4/H.264 AVC) 对摄像头采集的每一帧视频需要进行编码,由于视频中存在空间和时间的冗余,需要 ...
- ffmpeg硬编解码 Inter QSV
另一篇:ffmpeg硬件编解码Nvidia GPU 硬编解码除了使用Nvidia的GPU之外,Inter的QSV也是一种不错的方案,跟Nvidia不同的是,如果希望使用ffmepg的Inter QSV ...
- ffmpeg常用编解码命令
ffmpeg常用编解码命令 1 ffplay.exe (1) 播放MP4文件,指定标题以及播放分辨率 ffplay.exe -window_title "视频监控" -x 720 ...
- webrtc默认使用h264编解码
webrtc默认选择的是vp8编解码,要修改为默认h264编解码,则需要编码和解码都修改,需要做到下面三步 编译支持 编译时候增加属性 proprietary_codecs,设为true 例如: /. ...
- 音视频系列--H264编解码总结
一.概述 H264,通常也被称之为H264/AVC(或者H.264/MPEG-4 AVC或MPEG-4/H.264 AVC) 对摄像头采集的每一帧视频需要进行编码,由于视频中存在空间和时间的冗余,需要 ...
- H264编解码SPS、PPS参数说明
H264编解码参数说明 一.H264码流分层 1.NAL层 ①.如何判断帧类型(是图像参考帧还是I.P帧等)? ②. 帧格式 ③. [SPS格式解析代码分析 ParseAndRewriteSps方法 ...
- TightVNC H264编解码(一)
时光流逝,时间过的真快啊!疲于工作,发现近一个多月没写文章了.此文算是对最近的工作做个总结吧.经过尽二个月的不断摸索,TightVNC终于支持H264编解码了,前期真正编写H264编解码器只花了一周左 ...
最新文章
- 透视宇宙:大约138亿年前,宇宙真的发生过大爆炸吗?
- idea打包成jar包或war包
- 基础理论:啥是分布函数CDF、啥叫联合分布?
- gitignore重要技巧
- QT的QContiguousCache类的使用
- docker之docker-machine用法
- 在Kubernetes集群上部署和管理JFrog Artifactory
- matlab的try函数,matlab – 是否可以在没有try块的情况下测试函数句柄?
- 转:libev和libevent的设计差异
- SAP License:SAP 现金流量表实现方法谈
- [BZOJ4987] Tree
- java inner class_Java Inner Class 内部类
- php打印日期,php打印日期
- WGS84经纬度坐标转化成UTM坐标
- 3DMAX渲染了很久还是黑的或有部分黑​屏?
- 如何在网页浏览器中缩放网页?
- stm32毕业设计 单片机火灾报警系统
- 电脑技巧:电脑键盘F1~F12按键的妙用
- 幼儿识字软件测试自学,儿童识字App大PK:汉字王国只娱乐不学习
- 移动100m宽带慢的要死_wifi慢到快崩溃明明100m宽带却像2m的网速教你1招快速解决...
热门文章
- 转:SUSE下与RHEL下yum相似的RPM包管理工具zypper
- android手机存储大小设置在哪里看,Android 最新获取手机内置存储大小,SD卡存储空间大小方法...
- kafka修改分区数_大数据技术:解析SparkStreaming和Kafka集成的两种方式
- C语言程序设计输入x求函数y,C语言程序设计实践(OJ)-初识函数
- Linux源代码软件安装,Linux软件安装:源代码与软件安装
- 参与 Apache 顶级开源项目的 N 种方式,Apache Dubbo Samples SIG 成立!
- 实际场景中,云原生存储面临的 7 个挑战
- 安装python有什么用_什么是Python Wheels?为什么要关心它?,python有什么用
- linux at自动挂化,linux的at定时任务的使用
- 心灵战争服务器维护,心灵战争服务器异常产生哪些问题如何解决_心灵战争服务器异常产生问题及解决方法_玩游戏网...