首先引用别的大神的话:x264的参数繁多,开发者为了方便使用者、简化输入和提出编码建议,设计了一套快速调用参数的系统。如果没有特别的需要,请尽量使用preset和tune系统。这套开发者推荐的参数比各种道听途说的参数更合理。在使用了preset和tune以后,依然可以指定里面已经有的参数。手动指定的参数会覆盖preset和tune里的参数。
--preset 通过--preset的参数调节编码速度和质量的平衡。--preset的值有
ultrafast、superfast、veryfast、faster、fast、medium、slow、slower、veryslow、placebo。从快到慢,参数越来越EP。默认是medium。
--tune 通过--tune的参数值指定片子的类型,是和视觉优化的参数,或有特别的情况。--tune的值有
film:电影、真人类型;
animation:动画;
grain:需要保留大量的grain时用;
stillimage:静态图像编码时使用;
psnr:为提高psnr做了优化的参数;
ssim:为提高ssim做了优化的参数;
fastdecode:可以快速解码的参数;
zerolatency:零延迟,用在需要非常低的延迟的情况下,比如电视电话会议的编码。

代码:
头文件:
#include "libavutil/opt.h"

if(oc->oformat->flags & AVFMT_GLOBALHEADER)
c->flags|= CODEC_FLAG_GLOBAL_HEADER;
av_opt_set(c->priv_data, "preset", "ultrafast", 0);
av_opt_set(c->priv_data, "tune","stillimage,fastdecode,zerolatency",0);
av_opt_set(c->priv_data, "x264opts","crf=26:vbv-maxrate=728:vbv-bufsize=364:keyint=25",0);return st;}
// OPEN THE CODE
avcodec_open2(video_st->codec, video_codec, NULL);

player.c文件:
av_log(ctx, AV_LOG_ERROR, "add preset and tune\n");
ctx->time_base.den = 1;
ctx->time_base.num = 75;
av_opt_set(ctx->priv_data, "preset", "ultrafast", 0);
av_opt_set(ctx->priv_data, "tune", "zerolatency", 0);  //
ctx->delay = 0;

static av_cold int X264_init(AVCodecContext *avctx)
{
    X264Context *x4 = avctx->priv_data;

x264/common/common.c

static int x264_param_apply_preset( x264_param_t *param, const char *preset )
{
    char *end;
    int i = strtol( preset, &end, 10 );
    if( *end == 0 && i >= 0 && i < sizeof(x264_preset_names)/sizeof(*x264_preset_names)-1 )
        preset = x264_preset_names[i];

if( !strcasecmp( preset, "ultrafast" ) )
    {

教程文档:
http://blog.csdn.net/tobacco5648/article/details/27872431

avcodec_get_context_defaults3(c, *codec);
c->codec_id = codec_id;
c->width = OUTWIDTH;
c->height = OUTHEIGHT;
c->time_base.den = FPS;
c->time_base.num = 1;
c->pix_fmt = PIX_FMT_YUV420P;
if(oc->oformat->flags & AVFMT_GLOBALHEADER)
c->flags|= CODEC_FLAG_GLOBAL_HEADER;
av_opt_set(c->priv_data, "preset", "ultrafast", 0);
av_opt_set(c->priv_data, "tune","stillimage,fastdecode,zerolatency",0);
av_opt_set(c->priv_data, "x264opts","crf=26:vbv-maxrate=728:vbv-bufsize=364:keyint=25",0);return st;}
// OPEN THE CODE
avcodec_open2(video_st->codec, video_codec, NULL);
/* Write the stream header, if any. */
avformat_write_header(fmtctx, NULL);

ffmpeg解码优化参数相关推荐

  1. ffmpeg 找不到bin_FFmpeg开发笔记(九):ffmpeg解码rtsp流并使用SDL同步播放

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://blog.csdn.net/qq21497936/article/details/109603499 各位读者,知识无穷而人力有穷 ...

  2. 用surfaceview播放FFmpeg解码视屏

    关于FFmpeg解码请看第一篇教程:FFmpeg解码 下载转码库libyuv 一般我们用surfaceview播放视频都是才用RGBA格式等播放的,但我们解码之后的视频可能是h.264等等 所以我们这 ...

  3. 使用ffmpeg解码音频sdl(push)播放

    自定义播放器系列 第一章 视频渲染 第二章 音频(push)播放(本章) 第三章 音频(pull)播放 第四章 实现时钟同步 第五章 实现通用时钟同步 第六章 实现播放器 文章目录 自定义播放器系列 ...

  4. NDK--利用OpenSL ES实现播放FFmpeg解码后的音频流

    OpenSL ES全称为Open Sound Library for Embedded Systems.OpenSL ES是无授权费.跨平台.针对嵌入式系统 精心优化的硬件音频加速API.当然安卓也使 ...

  5. 【Qt+FFmpeg】 - FFmpeg解码详细流程

    目录 一:视频解码流程 二:FFMPEG解码流程 三:FFmpeg解码函数 四:FFmpeg解码的数据结构 五:FFmpeg数据结构简介 六:FFmpeg数据结构分析 七:像素数据转换 八:FFMPE ...

  6. 【Android FFMPEG 开发】FFMPEG 解码 AVPacket 数据到 AVFrame ( AVPacket-解码器 | 初始化 AVFrame | 解码为 AVFrame 数据 )

    文章目录 I . FFMPEG 解码 AVPacket 数据到 AVFrame 前置操作 II . FFMPEG 解码 AVPacket 数据到 AVFrame 流程 III . FFMPEG 发送 ...

  7. FFmpeg再学习 -- FFmpeg解码知识

    继续看雷霄骅的 课程资料 - 基于FFmpeg+SDL的视频播放器的制作 前面用了五个篇幅来讲 FFmpeg,其主要目的是为实现将图片转视频的功能. 总的来说,对于 FFmepg 多少有一些了解了.但 ...

  8. 视频编解码优化以及与AI的实践结合

    RealNetworks是流媒体类别的发明者,改变了音频和视频内容在各种设备和全世界消费的方式.在编解码市场的大环境下,RealNetworks推出了新一代的视频压缩算法RMHD,专为下一代的高清流媒 ...

  9. ffmpeg解码流程 turorial5详解

    From: http://www.360doc.com/content/11/1117/09/8050095_165108638.shtml FFMPEG解码流程 1. 注册所有容器格式和CODEC: ...

最新文章

  1. MySQL Profiling 的使用
  2. 缓存技术比拼:Redis与Memcached的同与不同
  3. 单一窗口关区备案_【干货】上海国际贸易单一窗口货物申报对接版(信天翁)“两段准入” 操作手册...
  4. 去除Office 2010的右键“共享文件夹同步”菜单
  5. LVS负载均衡群集的了解与基本配置(一)
  6. spring的单例回收
  7. 数据结构:平衡二叉树概念、旋转
  8. sqlserver的四种分页方式
  9. [转载] java避免空指针异常_第1部分:在现代Java应用程序中避免空指针异常
  10. 关于Toad的Cannot load OCI DLL问题
  11. MDF /IDF名词解析
  12. 什么是:before和:after?
  13. win10壁纸不能幻灯片放映_教你巧妙解决雨林木风Win10系统中背景桌面无法自动播放幻灯片...
  14. 虞老师在PRCV2021的Talk-Neural Human Reconstruction:From Rendering to Modeling
  15. 链家租房数据抓取流程、分析
  16. ubuntu禁用smap
  17. python求三重积分_三重积分的Python数值计算
  18. 少儿编程scratch与机器人
  19. 聚焦物流4大场景,RPA如何降低物流企业运营成本
  20. 雷达感应智能化技术,让家居生活更智能,雷达传感器技术应用

热门文章

  1. binostat matlab,MATLAB概率统计函数(2)
  2. python nlp文本摘要_理解文本摘要并用python创建你自己的摘要器
  3. 软件测试技术 中医体质判定表,中医体质分类及判定自测表.pdf
  4. 在vi或vim上查找字符串
  5. Spring Boot + MDC 实现全链路调用日志跟踪
  6. Keycloak简单几步实现对Spring Boot应用的权限控制
  7. 工程师姓什么很重要!别再叫我“X工”!!!
  8. 每日一皮:在调试时,将断点设置在错误的位置...
  9. 每日一皮:产品经理的黑化,你听过几个?
  10. 使用 Prometheus 监控 Redis