FFmpeg X264的preset和tune

来源:http://blog.csdn.net/daixinmei/article/details/51886850

鉴于x264的参数众多,各种参数的配合复杂,为了使用者方便,x264建议如无特别需要可使用preset和tune设置。这套开发者推荐的参数较为合理,可在此基础上在调整一些具体参数以符合自己需要,手动设定的参数会覆盖preset和tune里的参数。

--preset的参数主要调节编码速度和质量的平衡,有ultrafast、superfast、veryfast、faster、fast、medium、slow、slower、veryslow、placebo这10个选项,从快到慢。

--tune的参数主要配合视频类型和视觉优化的参数,或特别的情况。如果视频的内容符合其中一个可用的调整值又或者有其中需要,则可以使用此选项,否则建议不使用(如tune grain是为高比特率的编码而设计的)。

tune的值有: film:  电影、真人类型;

animation:  动画;

grain:      需要保留大量的grain时用;

stillimage:  静态图像编码时使用;

psnr:      为提高psnr做了优化的参数;

ssim:      为提高ssim做了优化的参数;

fastdecode: 可以快速解码的参数;

zerolatency:零延迟,用在需要非常低的延迟的情况下,比如电视电话会议的编码。

时间: 2024-11-05 12:10:56

FFmpeg X264的preset和tune的相关文章

ffmpeg x264编译与使用介绍

问题1:我用的是最新版本的ffmpeg和x264,刚刚编译出来,编译没有问题,但是在linux 环境使用ffmpeg的库时发现报错error C3861: 'UINT64_C': identifier not found 解决方法在libavutil目录下的common.h里增加如下定义: #ifndef INT64_C #define INT64_C(c) (c ## LL) #define UINT64_C(c) (c ## ULL) #endif 问题2:链接基于ffmpeg的应用时报错:

ffmpeg,X264编码结果I帧QP比P帧还大

enc_ctx->profile =FF_PROFILE_H264_MAIN ; enc_ctx->time_base.den = 24; enc_ctx->time_base.num = 1; enc_ctx->gop_size = 8; /* emit one intra frame every twelve frames at most */ enc_ctx->pix_fmt = AV_PIX_FMT_YUV420P; enc_ctx->max_b_frames

ffmpeg+x264推送high422 10bit码流

一.目的 推送一条rtmp流,视频码流采用h264 high422 10bit编码 二.环境 1.linux系统:Red Hat Enterprise Linux Server release 5.8 2.ffmpeg:3.1.4 3.x264:git下来的最新代码(2016-10-21) 三.编译x264+ffmpeg 1.编译x264 ./configure --enable_static --bit-depth=10 make make install 默认安装库和头文件到/usr/loc

ubuntu12.04上live555+v4l2+ffmpeg+x264开发环境的搭建

我把可能会用到的主要资源上传到度盘: http://pan.baidu.com/s/1i38AleP ubuntu上安装主要步骤就是解压.configure.make.sudo make install live555的安装可以看这里: http://www.live555.com/liveMedia/#config-unix libx264的安装则是直接解压.然后configure.make和sudo make install,configure命令如下 ./configure --disab

ffmpeg+x264 Windows MSVC 静态编译

尝试ubuntu和win下mingw编译版本,但都在Vistual Studio链接时因为依赖 libgcc.a, libmingw.a, libmingwex.a 会与mscrt 有符号冲突. 最后都是用msvc 来编译就搞定了 1. x264 按照官方文档说明: The following example command will configure libx264: CC=cl ./configure --enable-static --prefix=<PREFIX> --extra-c

centos编译ffmpeg x264

1.安装汇编编译器(一般系统自带吧),如果没有按照下面的命令安装吧 yum install yasm 2.使用最新x264源码编译(只支持编码)    在x264官网下载最新的代码http://www.videolan.org/developers/x264.html git clone git://git.videolan.org/x264.git cd x264 ./configure --enable-static --enable-shared make make install 注意-

x264代码剖析(三):主函数main()、解析函数parse()与编码函数encode()

x264代码剖析(三):主函数main().解析函数parse()与编码函数encode() x264的入口函数为main().main()函数首先调用parse()解析输入的参数,然后调用encode()编码YUV数据.parse()首先调用x264_param_default()为保存参数的x264_param_t结构体赋默认值:然后在一个大循环中通过getopt_long()解析通过命令行传递来的存储在argv[]中的参数,并作相应的设置工作:最后调用select_input()和sele

x264源代码简单分析:x264命令行工具(x264.exe)

本文简单分析x264项目中的命令行工具(x264.exe)的源代码.该命令行工具可以调用libx264将YUV格式像素数据编码为H.264码流. 函数调用关系图 X264命令行工具的源代码在x264中的位置如下图所示. 单击查看更清晰的图片 X264命令行工具的源代码的调用关系如下图所示. 单击查看更清晰的图片 从图中可以看出,X264命令行工具调用了libx264的几个API完成了H.264编码工作.使用libx264的API进行编码可以参考<最简单的视频编码器:基于libx264(编码YUV

ffmpeg源码分析五:ffmpeg调用x264编码器的过程分析

该文将以X264编码器为例,解释说明FFMPEG是怎么调用第三方编码器来进行编码的. 所有编码器和解码器都是在avcodec_register_all()函数中注册的.从中可以找到视频的H264解码器和X264编码器: REGISTER_DECODER(H264,              h264); REGISTER_ENCODER(LIBX264,           libx264); 他们都是通过一下宏进行相应的注册的: #define REGISTER_DECODER(X, x)