参考:http://blog.csdn.net/aoshilang2249/article/details/40397199?utm_source=tuicool&utm_medium=referral

最新使用FFmpeg进行H264的编码时,发现视频编码有延迟,不是实时编码,进过一番研究发现,只要在调用avcodec_open2函数

打开编码器时,设置AVDictionary参数即可,关键代码如下:

avcodec_open2函数:

[cpp] view plain copy
  1. int avcodec_open2(AVCodecContext *avctx, const AVCodec *codec, AVDictionary **options);

解决方案:

  1. //H264, 设置为编码延迟为立即编码
  2. if(c->codec_id == AV_CODEC_ID_H264)
  3. {
  4. av_dict_set(ctx->priv_data, "preset", "superfast",   0);

  5. av_dict_set(ctx->priv_data, "tune",   "zerolatency", 0);
  6. }
  7. //H.265
  8. if(c->codec_id == AV_CODEC_ID_H265)
  9. {
  10. av_dict_set(ctx->priv_data, "x265-params", "qp=20", 0);
    av_dict_set(ctx->priv_data, "preset", "ultrafast", 0);
    av_dict_set(ctx->priv_data, "tune", "zero-latency", 0);
  11. }
  12. //使用给定的AVCodec初始化AVCodecContext
  13. ret = avcodec_open2(参数, 参数,NULL);

还有这种方式:

  1. // Set Option
  2. AVDictionary *param = 0;
  3. //H.264
  4. if(pCodecCtx->codec_id == AV_CODEC_ID_H264) {
  5. av_dict_set(?m, "preset", "slow", 0);
  6. av_dict_set(?m, "tune", "zerolatency", 0);
  7. }
  8. //H.265
  9. if(pCodecCtx->codec_id == AV_CODEC_ID_H265){
  10. av_dict_set(&param, "x265-params", "qp=20", 0);
  11. av_dict_set(&param, "preset", "ultrafast", 0);
  12. av_dict_set(&param, "tune", "zero-latency", 0);
  13. }
  14. //Dump Information 输出格式信息
  15. av_dump_format(pFormatCtx, 0, out_file, 1);
  16. pCodec = avcodec_find_encoder(pCodecCtx->codec_id);
  17. if (!pCodec){
  18. printf("Can not find encoder! 没有找到合适的编码器!\n");
  19. return -1;
  20. }
  21. if (avcodec_open2(pCodecCtx, pCodec,&param) < 0){
  22. printf("Failed to open encoder! 编码器打开失败!\n");
  23. return -1;
  24. }

FFMPEG H264/H265 编码延迟问题相关推荐

  1. 如何让ffplay或者ffmpeg支持H265编码的rtmp/http-flv 实时直播流

    很多初学者不知道ffplay或者ffmpeg是不支持flv封装的rtmp/http-flv流的,其原因是flv不支持H265编码payload的,因为当时制定flv封装协议的时候,H265还没出来,现 ...

  2. FFmpeg支持H265编码

    目前FFmpeg已经能够支持H265编码,我们可以通过configure添加 --enable-gpl --enable-libx265来配置. 这就需要我们的系统环境中已经安装了libx265,且其 ...

  3. Android6.0 dump h264/h265编码裸流(二)

    1.dump h264/h265的NALU(VPS/SPS/PPS)与数据 路径:frameworks/av/media/libstagefright/MPEG4Writer.cpp<1> ...

  4. FFmpeg源码编译出支持音频AAC编码以及H264,H265编码的库

    先决条件: 需要安装msys2(是一个在windows中模拟linux操作系统的软件) 由于在linux中编译ffmpeg比较简单, 所以利用一下msys2, 直接去官网下载安装即可 需要安装visu ...

  5. ffmpeg转换h265编码视频到h264编码

    ffmpeg -i inputfile -map 0 -c:a copy -c:s copy -c:v libx264 output.mkv

  6. Linux系统安装ffmpeg + h264视频编码

    通过我这篇文章安装的小伙伴可能会遇到h264编码转换失败的问题,本篇文章将完美解决这个问题. 此篇文章方法也适合未安装ffmpeg的系统,忽略第一步即可. 1.首先,进入你安装的ffmpeg文件夹下, ...

  7. android ffmpeg 编码h264,Mac系统下ffmpeg+h264+flv编码的android录制屏幕实现2

    接上一篇. activity_flv.xml xmlns:tools="http://schemas.android.com/tools" android:layout_width ...

  8. ffmpeg使用h264、h265编码转换

    1.编译x264 git clone https://code.videolan.org/videolan/x264.git cd x264 ./configure --enable-shared - ...

  9. iOS H264,H265视频编码(Video encode)

    本例需求:使用H264, H265实现视频数据的编码并录制开始200帧存为文件. 原理:比如做直播功能,需要将客户端的视频数据传给服务器,如果分辨率过大如2K,4K则传输压力太大,所以需要对视频数据进 ...

最新文章

  1. 跟我学Springboot开发后端管理系统7:Matrxi-Web权限设计
  2. MyBatis 的执行流程,写得太好了!
  3. python判断文件是否存在、不存在则创建_python判断文件是否存在,不存在就创建一个的实例...
  4. 闭包案例产生多个相同的随机数 沙箱
  5. eclipse中Lombok注解无效
  6. 《Reids 设计与实现》第五章 对象
  7. 基于 Android NDK 的学习之旅-----Java 调用C(附源码)
  8. Failed to start LSB: start and stop MariaDB
  9. Discuz = 7.2 SQL注入漏洞详情
  10. VMware安装Windows Server 2003提示Operating System not found
  11. 几何画板如何画曲线方程?
  12. 【计算机三级数据库技术】三级数据库技术应用题集锦
  13. ppt编辑数据链接文件不可用_excel表格编辑数据不可用-ppt插入的自带图表点击编辑数据时显示链接文件不可用...
  14. android logo颜色渐变,华为悄然更新品牌Logo:无渐变色,更加扁平化
  15. 脱壳进阶篇——IAT修复与解密
  16. CF1155F Delivery Oligopoly
  17. 佳人何处有,明月寄相思
  18. 微信模板消息发送失败
  19. 从键盘上输入两个字符串,将两个字符串首尾相连接后,再输出新的字符串(c语言)
  20. 网络七层协议具体是什么?

热门文章

  1. 问题集锦(30-35)
  2. python查看函数调用栈
  3. java统计字符串中每个字符出现的次数,统计字符串中每个字符出现的次数
  4. mega_[MEGA DEAL]带有Kotlin捆绑包的完整Android Oreo(95%折扣)
  5. commons-io_从Commons CLI迁移到picocli
  6. java 6位日期 0001,当日期范围更改为从01-01-0001开始时,DimDate将不会加载
  7. python文本分类评价指标 top1如何计算_python – Keras:如何计算多标签分类的准确......
  8. python多线程输出_Python多线程
  9. 计算机专业文档写作课件,计算机专业论文写作的方法.ppt
  10. 皮一皮:好的团队合作比什么都有用!