x264命令介绍

合集下载

X264用法

X264用法
@pause
----
@cd /d "%~dp0"
x264 -p2 --stat "XXX.stat" -B XXXX [option] -o "%~dpn1_p2.mp4" "%~1"
@pause
注意一般pass 1 都加上--slow-firstpass这个参数。
pass 1压完看下视频是否满足自己要求,不满意就继续
输入:
x264支持输入的文件类型有raw yuv、y4m、avs和任何可以由ffms或lavf打开的文件。raw yuv会用在64位的x264里。有ffms/lavf打开的片子会自动正确的处理vfr问题。avs和ffms/lavf输入不需要指定片子的分辨率。
输出:
x264可以输出没有封装的H.264视频流,扩展名是.264;matroska视频,扩展名是.mkv;flash视频,扩展名是.flv;mp4视频,扩展名是.mp4。mkv、mp4和flv可以是vfr的。
除了2pass,还有多pass模式,在之前分析的基础上再继续分析,理论上会使码率分配更加合理,但实际上2pass已经足够了。
--bitrate 1000 (以1000kbps码率为例)
>x264 --bitrate 1000 --pass 1 --tune animation --preset slower --stats "1pass.stats" -o NUL input.avs
ssim:为提高ssim做了优化的参数;
fastdecode:可以快速解码的参数;
zerolatency:零延迟,用在需要非常低的延迟的情况下,比如电视电话会议的编码。

X264中STAD实现分析

X264中STAD实现分析

1 Hadamard变换:Hadarmard 变换的过程可以描述为用hadamard 矩阵对目标矩阵进行矩阵变换。

Q 什么样的矩阵是hadamard 矩阵?A:矩阵元素是土1且行正交。

行正交矩阵是指满足这个公式的意思就是:A的每行的元素的平方和等于n,不同行的对应元素的乘积之和等于0。

下面以二阶Hadamard矩阵来验证这个公式::k=1 j=1 a11xa11+a21xa11K=1 j=2 a11xa21+a21xa21K=2 j=1 a12xa12+a22xa12K=2 j=2 a12xa22+a22xa22J=I时a11xa1+ a21xa21+ a12xa12+ a22xa22=4a21xa11+ a22xa12+ a12xa22+ a11xa21=0.二阶Hadamard矩阵:在编码中当计算SATD时就是用到4阶的hadamard矩阵。

其中表示为克罗内克积,两个任意大小的矩阵间的运算。

Q:hadamard 变换在变换编码中的作用?A:变换编码是对图像矩阵用特定的矩阵进行矩阵变换,使得图像能量信号高度集中于特定区域。

Hadamard 变换就是其中一种很常用的变换,其利用相邻像素的相关性(即相邻像素灰度值相近),用hadamard矩阵对图像矩阵进行矩阵变换,使得图像能量集中于变换后矩阵的左上角(经历二维hadamard变换后方图像能量可集中于左上角)。

通俗讲就是变换后矩阵只有左上方区域有数值,其他其他区域元素值为0,这样就达到了数据压缩的目的。

3 hadamard 变换举例其中f(x,y)是目标矩阵(1)(2)二维hadamard变换举例:==(记新得到的矩阵为C)根据矩阵相乘的运算分析:执行第一次hadamard变换的目的是将图像矩阵的能量集中到第一行。

=执行第二次hadamard变换的目的是将矩阵C的能量集中到变换后矩阵的第一列。

所以在理想状态下运用二维hamard变换目的是将图像矩阵的能量完全集中在左上角。

ffmpeg 各种编码器 使用方法

ffmpeg 各种编码器 使用方法

一、介绍ffmpeg编码器ffmpeg是一个开源的音视瓶处理工具,可以进行音视瓶的编解码、转换和流媒体的处理。

在使用ffmpeg进行编码时,我们可以选择不同的编码器来实现不同的功能,比如压缩、转换、解码等。

本文将介绍一些常见的编码器,并说明它们的使用方法。

二、常见的音频编码器1. AAC编码器AAC(Advanced Audio Coding)是一种高级音频编码格式,常用于音乐和音频流媒体的编码。

在ffmpeg中,可以使用libfaac库来支持AAC编码,具体命令如下:ffmpeg -i input.wav -c:a libfaac -b:a 128k output.aac参数说明:-i input.wav:指定输入文件为input.wav-c:a libfaac:选择使用libfaac库进行音频编码-b:a 128k:设置音频比特率为128kbpsoutput.aac:指定输出文件为output.aac2. MP3编码器MP3(MPEG-1 Audio Layer 3)是一种广泛使用的有损音频压缩格式,适用于音乐和语音的编码。

在ffmpeg中,可以使用libmp3lame库来支持MP3编码,具体命令如下:ffmpeg -i input.wav -c:a libmp3lame -q:a 2 output.mp3参数说明:-i input.wav:指定输入文件为input.wav-c:a libmp3lame:选择使用libmp3lame库进行音频编码-q:a 2:设置音频质量因子为2(取值范围0-9,数值越大,音质越低)output.mp3:指定输出文件为output.mp3三、常见的视瓶编码器1. H.264编码器H.264(又称AVC)是一种高效的视瓶编码格式,适用于视瓶会议、高清电视等场景。

在ffmpeg中,可以使用libx264库来支持H.264编码,具体命令如下:ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset slowoutput.mp4参数说明:-i input.mp4:指定输入文件为input.mp4-c:v libx264:选择使用libx264库进行视瓶编码-crf 23:设置视瓶质量因子为23(取值范围0-51,数值越小,视瓶质量越高)-preset slow:设置编码速度为slow(速度越慢,压缩效率越高)output.mp4:指定输出文件为output.mp42. H.265编码器H.265(又称HEVC)是一种更高效的视瓶编码格式,可以实现更好的压缩效果和视瓶质量。

X264-libx264编码库

X264-libx264编码库

X264-libx264编码库X264编码库libx264实现真正的视频编解码,该编解码算法是基于块的混合编码技术,即帧内/帧间预测,然后对预测值变换、量化,最后熵编码所得。

编码帧的类型分为I帧(x264_type_i)、P帧(x264_type_p)、B帧(x264_type_b),在H264中叫做图像⽚Slice。

X264把整帧图像看作⼀个Slice,⽚中有slice_type_i、slice_type_p、slice_type_b之分。

I帧只有slice_type_i,P帧有slice_type_i、slice_type_p,B帧三种⽚都有。

X264的H264视频编码过程可以分为三个步骤:⾸先根据规则判定当前帧的编码类型,如果是B帧,要缓冲存放、获取;然后对待编码图像进⾏帧内预测、帧间预测、整数DCT变换、量化和熵编码;最后把压缩的H264数据进⾏NAL层打包输出。

X264编码器有关的重要结构体:x264_image_t:实际参与编码的编码帧图像信息。

typedef struct{int i_csp; //图像空间颜⾊int i_plane; //图像平⾯数⽬int i_stride[4]; //每个图像平⾯的跨度,也就是每⼀⾏数据的字节数uint8_t *plane[4]; //每个图像平⾯存放数据的起始地址,plane[0]是Y平⾯,plane[1]是U平⾯,plane[2]是V平⾯}x264_image_t; //待编码的图像x264_picture_t:x264编码器定义便于控制的图像帧,描述⼀帧的特征。

包含x264_image_t和x264_param_t结构体。

typedef struct{int i_type; //帧的类型,初始化为auto,在编码过程⾃⾏控制int i_qpplus1; //此参数减1代表当前帧的量化参数值int i_pic_struct; //帧的结构类型int b_keyframe; //输出是否是关键帧int64_t i_pts; //⼀帧的显⽰时间戳int64_t i_dts; //输出解码时间戳x264_param_t *param;x264_image_t img;x264_image_properties_t prop;x264_hrd_t hrd_timing;void *opaque;} x264_picture_t; //x264编码视频帧x264_param_t:初始化编码器。

x264命令行参数解释

x264命令行参数解释

x264命令行参数解释使用格式:x264 默认选项 -o 输出文件输入文件 [长x宽]输入支持格式:RAW/y4m/avi/avs(编译时可选)输出支持格式:264/mkv/mp4(编译时可选)x264的许多参数可以有-/--两种输入法,笔者也不知道为什么。

以下等价参数用“参数1/参数2 <必需数值格式>”表示,参数尾部()内为个人推荐。

-h/--help 帮助帧类型选项:-I/--keyint <整数> 最大IDR帧间距,默认250-i/--min-keyint <整数> 最小IDR帧间距,默认25--scenecut <整数> 画面动态变化限,当超出此值时插入I帧,默认40-b/--bframes <整数> 在IP帧之间可插入的B帧数量最大值,范围0~16,默认0--no-b-adapt 关闭自适应B帧判定(-b设为1时可用,其他不推荐)--b-bias <整数> 控制插入B帧判定,范围-100~+100,越高越容易插入B帧,默认0--b-pyramid 允许B帧做参考帧--no-cabac 关闭内容自适应二进制算术编码(CABAC,高效率的熵编码)(会提高速度,但严重影响质量)-r/--ref <整数> 最大参考帧数,范围0~16,默认1--nf 关闭环路滤波(一种除马赛克算法)-f/--filter <alpha:beta>设置环路滤波的AlphaC和Beta的参数,范围-6-6,默认都为0码率控制选项:-q/--qp <整数> 固定量化模式并设置使用的量化值,范围0~51,0为无损压缩,默认26-B/--bitrate <整数> 设置平均码率--crf <整数> 质量模式,量化值动态可变(目前不太成熟,质量不如设置固定量化值)--qpmin <整数> 设置最小量化值,范围0~51,默认10--qpmax <整数> 设置最大量化值,范围0~51,默认51--qpstep <整数> 设置相邻帧之间的量化值差,范围0~50,默认4--ratetol <小数> 平均码率模式下,瞬时码率可以偏离的倍数,范围0.1~100.0,默认1.0 --vbv-maxrate <整数> 平均码率模式下,最大瞬时码率,默认0(与-B设置相同)--vbv-bufsize <整数> 码率控制缓冲区的大小,单位kbit,默认0--vbv-init <小数> 码率控制缓冲区数据保留的最大数据量与缓冲区大小之比,范围0~1.0,默认0.9--ipratio <小数> I帧和P帧之间的量化系数,默认1.40--pbratio <小数> P帧和B帧之间的量化系数,默认1.30--色度-qp-offset <整数> 色度和亮度之间的量化差,范围-12~+12,默认0-p/--pass <1|2|3> 多次压缩码率控制1:第一次压缩,创建统计文件2:按建立的统计文件压缩并输出,不覆盖统计文件,3:按建立的统计文件压缩,优化统计文件--stats <字符串> 统计文件的名称,默认"x264_2pass.log"--rceq <字符串> 速率控制公式,默认"blurCplx^(1-qComp)"--qcomp <小数> 线性量化控制,0.0为固定码率,1.0为固定量化值,默认0.6,只用于2-pass 和质量模式--cplxblur <小数> 根据相邻帧平滑量化值比例的最大值,范围0~99.9,默认20.0,只用于2-pass和质量模式--qblur <小数> 对统计文件结果平滑量化值比例的最大值,范围0~99.9,默认0.5,只用于2-pass--zones <z0>/<z1>/…分段量化,格式为:<开始帧>,<结束帧>,<选项>,可选项为:q=<整数>(量化值)或b=<小数>(码率倍数)分析选项:-A/--analyse <字符串> 动态块划分方法,默认"p8x8,b8x8,i8x8,i4x4"。

中文版MeGUI的x264编码配置详细解读

中文版MeGUI的x264编码配置详细解读

中文版MeGUI的x264编码配置详细解读有人向往和膜拜科班出身的,这个我同意,但若无视艹根的存在,那么我很生气,往往是民间高手如林,自己何必妄自菲薄。

一早我也说过不敢在压制的方向前进,那是因为这是个苦力不讨好的工作,有空我还不如多看看美女……只要关注,网络上的东西随处可以学习到,就对这个x264编码配置来说,网络上的资源多如脚毛。

我嫉妒恨的是科班出身的总会先天就有优势,民间人士门要蛋定,不要比,不要计较,自己玩自己的,不用理正统不正统。

我们的优势在于,科班人士再厉害他也没有拍电影也没做导演也没潜了哪个女优,嘎嘎,扯远了。

本文主要讲解x264编码的设置问题,是对应本人推荐的中文版MeGUI所做的一次详细配置论述,请用英文版的英雄路过不要取笑,也应该不要盲目的路过。

我还是传统的图文方式来一起研究,当然我说的不一定对,那是因为网络上也是这么教的,可能一直都错着我也用错的来说,在这次解释中,我会用一些自己理解的来说话,也许更能让民间人士理解。

普及一下别的知识,在各大影视论坛基本不允许发布以RMVB格式的影片,你只要用上x264的编码就意味着你和RMVB说88了。

民间人士普遍认为RMVB体积小画面清晰,但科班的人士会用理论的知识告诉你,同样的片源和同样的码率下,x264的mkv绝对比rmvb画质更好,文件更小。

这是为什么?你要问这是为什么?那是因为x264的编码机制发挥了无法想像的作用,你只要实践了就会明白这是真的,打住不说了反正就像磁带被光盘取代,windows98被xp顶上。

科班厉害之处是懂得比较多,早前的x264.exe是命令参数实现压制的,DOS级的工具很怕黑的就不要尝试了。

GUI,是图形界面操作,适合民间高手使用。

曾被科班出身的嘲笑过,说使用MeGU压制的都是水货,嘎嘎,我笑笑不能回答。

科班告诉我就这GUI不是只有Me 的,这下你明白没?像ripbot、staxrip 等都是GUI……行了行了,民间人士也不用惭愧,至少MeGUI能自动更新编码,还有汉化版可以用,batch的是高手,不和他们一起玩!安装MeGUI简体中文版(请回顾本人以前的大作,这里略去几百万字……)仿图挂,可下载中文版MeGUI的x264编码配置详细解读或是到QQ空间查阅软件下载转到论坛页面以前的中文版本MeGUI太不专业了,直到你碰到我这个民间人士才集合了比较强大的中文版MeGUI,不要怕出错,出错不是你的错。

ffmpeg压缩代码

ffmpeg压缩代码

如果你想使用FFmpeg进行视频压缩,你可以使用以下的命令行代码作为参考。

请注意,你需要根据你的具体需求和环境来调整这些参数。

bash复制代码
ffmpeg -i input.mp4 -vcodec libx264 -crf 23 -acodec copy output.mp4
这个命令的解释如下:
-i input.mp4: 这是输入文件的名称。

你需要替换input.mp4为你需要压缩的视频文件的名称。

-vcodec libx264: 这是使用的视频编解码器。

libx264是一个非常流行的H.264/AVC编解码器。

-crf 23: 这是视频的质量参数。

CRF值越小,质量越高,文件越大;CRF值越大,质量越差,文件越小。

常见的CRF值范围是0-51,其中23是默认值。

-acodec copy: 这表示音频编解码器。

copy表示直接复制输入文件的音频流,不进行转码。

output.mp4: 这是输出文件的名称。

你可以替换output.mp4为你想要的输出文件名。

请注意,这只是一个基本的压缩命令。

FFmpeg有许多其他的参数和选项,可以用来调整压缩过程,以满足你的具体需求。

你可以通过运行ffmpeg -h命令在终端查看所有可用的参数和选项。

另外,这个命令需要在安装了FFmpeg并且其路径添加到了系统路径中的环境中运行。

如果你还没有安装FFmpeg,你可以访问FFmpeg的官方网站查看安装指南。

megui英文参数详解

megui英文参数详解

进入MeGUI主界面,在Video encoding和Audio中的Encoder settings选项中分别选择X264和Nero AAC在File format和Extension分别选择RAWA VC和M4A设置好后我们点击Video encoding中的Config开始进行基本视频压制参数设置打开视频部分的Config后可见如下界面:我们首先勾选Show Advanced Settings开启高级选项之后注意看红色的Modes区域的下拉列表,有多重编码模式,这里简单介绍一下:1pass即仅编码一次,2pass则为编码两次,3、4…pass以此类推ABR 平均码率压制,一次成形。

码率的分配来自即时验算。

通常不应该使用这个模式。

Const Quantizer(qp) 固定量化值输出。

每一类帧采用相同的量化值来量化(停用弹性量化),使得全片的质量大体相近。

速度较CRF模式更快一点,但个人不推荐这个模式。

2pass - 1st/2nd 手动进行2pass压制。

1st时可以用turbo以加快压制速度。

automated 2pass 自动2pass压制。

一次设置就能生成2个任务,比手动更方便些。

3pass与上面同理,只不过多增加了一次编码,3pass对码率的分配更优化,但是效果不大,而转换时间会增加很多,所以一般不推荐。

Const Quality(crf) 固定速率系数,对于体积没有要求的压制,对于相同的视觉品质,CRF 比QP输出的档案更小,如果只是1pass的话推荐选用这个模式。

若是QP/CRF模式下,Modes后的Quantizer/Quality即为量化值,该数值越小画质越高、码率越高、文件体积越大,默认值为23片源好的话可以把该值加大,但最好不要低于15或超过28若是码率模式下,Mode后的Bitrate即为码率,码率越高画质越高、文件体积越大,默认值为700关于这个值,272P的话动画400-600即可,电影600-800。

小丸工具箱入门操作教程

小丸工具箱入门操作教程

本教程为小丸工具箱入门操作教程,仅对小丸工具箱的重要功能作详细解释,不涉及压制参数方面。

当前教程以236版本作讲解,可能某些功能通过小丸的后续更新变得有些不同,仅供学习参考。

“视频”选项卡:这里是压制视频的地方。

通常来说,你把视频添加到“单视频压制操作范围”里面,在“通用参数”里调试你所要的参数,点击压制即可。

批量压制同理,不过它点的是右下角的压制。

普通的压制只需要调一调CRF的数值和视频的分辨率即可,不需要搞其他更深奥的东西。

还有一点,就是你可以在输出的选项上,选择你压制后想输出的格式(例如MKV和FL V)需要注意的是,小丸会自动识别跟视频同名的字幕文件,在“单视频压制操作范围”增加视频后,它会自动添加同文件名的字幕文件上去,而在批量压制的框框里,视频文件名会变成蓝色,跟第一张图的效果那样,再勾上内嵌字幕,就可以压进去了。

如果字的颜色是黑的,那么就说明没关联到字幕。

视频选项详细解说:编码器:无论是32位还是64位,都无所谓,跟着系统走就行了。

“X264_GCC”,GCC的意思是用GCC编译的X264版本。

至于怎么选择都没必要纠结,一般压制是没区别的。

音频模式:小丸这里分为3个模式,复制、压制、无音频流。

复制模式:顾名思义就是直接复制过来。

在使用这个模式之前,你需要考虑原视频的音频是否能封装进你所压制好的容器里。

压制模式:就是把音频给压制了,需要注意的是该选项是跟“音频”选项页中的设置是通用的。

无音频流 :那就是没有音频了。

分离器:这里一般选项为auto,没啥事不要动它。

压制视频出来画音不同步,有很大一部分都是分离器出问题,要是出现这个问题,请提供压制日志到论坛或交流群内报错。

起始帧和编码帧数:该选项默认为0,如果你只需要压制该视频的其中一小段,那么你只要在“起始帧”设置从第几帧开始压制,在“编码帧数”上设置要压多少帧即可。

使用该功能时最好选择“无音频流”。

CRF:该参数的质量范围一般为1-51,一般设置21-25之间就可以,此值越大码率范围越低。

x264参数介绍(一、帧类型和码率控制)

x264参数介绍(一、帧类型和码率控制)

/s/blog_4e0869690100xa87.html原文地址:【翻译】x264参数介绍(一、帧类型和码率控制)作者:南无阿弥陀佛【翻译】x264参数介绍(一、帧类型和码率控制)2010年10月2日评论发表评论翻译自:/wiki/X264_Settings,水平有限,勿吝指教。

第二部分:/?p=2206输入用1个绝对路径定义输入文件(或者2个,rawYUV文件)。

如下例:x264.exe -o NUL C:input.avsx264 -o /dev/null ~/input.y4m如果输入文件是rawYUV格式的,还要把分辨率一并输入。

如果开启了比特率控制,还需要输入帧率。

如下例:x264.exe -o NUL –fps 25 D:input.yuv 1280×720x264 -o /dev/null –fps 30000/1001 ~/input.yuv 640×480预设值预设值是x264在r1177版本增加的一个方便的命令行选项。

可以用x264.exe –fullhelp查看所有的命令行帮助。

profile默认:无说明:限制输出文件的profile。

这个参数将覆盖其它所有值,此选项能保证输出profile兼容的视频流。

如果使用了这个选项,将不能进行无损压缩(qp 0 or crf 0)。

可选:baseline,main,high建议:不设置。

除非解码环境只支持main或者baseline profile的解码。

preset默认:medium一些在压缩效率和运算时间中平衡的预设值。

如果指定了一个预设值,它会在其它选项生效前生效。

可选:ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow and placebo.建议:可接受的最慢的值tune默认:无说明:在上一个选项基础上进一步优化输入。

[VCB-Studio][教程09]x264参数设置

[VCB-Studio][教程09]x264参数设置

VCB-Studio教程09 x264参数设置0. 前言本教程旨在讲述x264参数设置的技巧,并侧重于vcb-s定位的使用:10bit,动漫,高码率,高参数。

对于非这类定位的压制,虽有叙述但不详细。

本教程请搭配MeGUI的参数设置面板一起阅读:本教程会按照标签卡(Main->Frame Type->…->Misc)分别讲解,每个标签卡内,按照从左上到左下,到右上到右下的顺序,讲述每个参数的使用,并给出它们在批处理命令行中的写法。

或者,你完全可以在MeGUI中调好,然后复制下方的命令行(去掉开头的program和结尾的--output "output" "input")到批处理。

后续会有教程讲述低码率下8bit压制的技巧。

不要将本篇中讲述的任何参数和逻辑套用在x265上。

1. Main标签卡,x264基础设置Main标签卡里面都是最主要的参数,新手上路,掌握Main标签卡的内容,就足以去一些普通字幕组担任压制了。

Encoding Mode(rc,ratecontrol,码率控制方法):ABR: Average Bit Rate,指定一个平均码率。

x264会试图让整部视频的平均码率达到你的给定值。

如果视频前后编码复杂度相差很大,那么码率的时间分配效果就很差,尤其是到了结尾,为了达到预定的码率值,x264经常不得不采用过高/过低的码率。

所以一般不推荐这个模式。

命令行: --bitrate 1000,1000是码率,单位Kbps。

Const quantizer:cq模式,固定量化模式。

所有P帧(下文有讲)采用一个固定的Quantizer。

Quantizer, 量化,是一种衡量图像压缩程度的方法,用0-69的浮点数表示,0为无损。

图像被压缩的越多,量化值越大,码率越低,注意量化值不一定代表目视质量,比如说一个纯色的图像可以以很高的量化值被量化,占用的体积很小,而一个很复杂的图像就算量化值不高,但是压缩后观感也可能很差。

x264编码 教程

x264编码 教程

MP4介绍与基本AVC编码(x264)教程首先简单介绍一下MPEG是什么:MPEG是Motion Picture Expert Group的缩写,简单讲就是个行业里的组织,专门对数字内容做出业界规范的组织。

其实从MPEG1开始我们就广泛认识到这个组织和他们的标准了。

VCD就是其中最主要的代表。

在当时亚洲国家VCD格式十分流行,如果没记错VCD这个具体的格式是从日本而来的,并遵守MPEG1规格。

之后便是MPEG2,具体代表是DVD。

知道现在都是主流数码格式。

说道这里大家应该开始明白MPEG这个组织其实他的责任就是推广每一代新的数字媒体规范或是规格,而不是实际的产品。

换句白话就是说,政府来规定符合什么样标准的汽车可以上路,然后各个汽车公司按照这个具体的标准来制作自己的汽车,通过政府规定的汽车才可以上路。

张三李四都可以开发自己符合mpeg规格的codec和container(这个是什么我之后会解释),并且理论上拿到别人同样按照这个规格开发的产品上照样可以工作。

具体例子就好比制作DVD的方法千千万万,好莱坞用来做大片,个人也可以把自家拍的DV刻成DVD。

理论上讲都可以在放在任何DVD机里播放(这里不考虑个别不兼容问题)。

这也是为什么明明XVID编码的dvdrip大家用ffdshow也可以照样看。

所以说这就是规格统一的好处!!说了这么多转入正题:我们要讨论的MP4格式。

从名字就可以看出来她是高于MPEG1、2的新一代数字媒体格式(本人到现在还不知道为什么没有3直接从2跳到4了,知道达人请在后面的帖子里补充)现在就具体介绍一下MP4的具体规格:(很多内容来源与,英文好的朋友我强烈建议去那里看看,消费层用户里面那里是很权威的)- ISO 14496-1 (Systems) - 户动界面(有点像DVD里的菜单)- ISO 14496-2 (Video) - ASP(Advanced Simple Profile)就是其中一种,代表产品有Xvid,Divx5等等。

(1)尽量不浪费压制时间的简单视频高压要点

(1)尽量不浪费压制时间的简单视频高压要点

(1)尽量不浪费压制时间的简单视频⾼压要点更新时间2012-05度熊胃⼝真好……放这边好了此前本⼈在bili发过2个⾼压视频(在ac也投过,但两天后被xilin给吃了)/video/av26434//video/av41621/这⾥再额外放⼀个,是x264核⼼开发者之⼀Dark Shikari于09年7⽉31⽇压制的某个东⽅project动画(梦想夏乡),视频流67.4kbps,⾳频流26.2kbpshttp://x264.nl/developers/Dark_Shikari/Flash/lowbitrateanime.html可以⽤flvcapture下载视频此视频只是为了说明x264可以将动画压得很⼩,同时视频本⾝不⾄于烂到渣(显然即使是这么低的码率,也明显要⽐很多在线视频质量更好)很多⼈都来问是如何压的,事实上只要CPU⾜够强劲,直接--preset placebo就是最省事的⽅法,但对⼤多数⼈(⽐如像我这样只买得起E5200的穷⼈)来说,这样压制在时间上就过于不划算了。

很多⾼⼿,⽐如doom9上⾯的x264开发者,是建议⽤户直接使⽤preset+tune⽅式压制的,满⾜绝⼤多数需求,在压制时间和压缩率上的平衡杠杆上也处理地不错,但对我这种精益求精到EP的程度的⼈来说,还是喜欢⾃定义所有参数来压制视频,以确保在可以接受的压制时间前提下,以尽可能低的码率,来获得尽可能⾼的画质。

(会这么EP某种程度上可以说是受了真红之瞳的影响)我现在压制都是基于命令⾏⽅式。

为了让⼴⼤使⽤MC的群众明⽩我之后说的,建议先看此⽂/doc/X264使⽤介绍作为命令⾏压制⼊门,这是很好的⽂章;同时⾥⾯也有各个版本的x264下载链接页⾯。

此⽂是让⼤家了解下什么是命令⾏式操作,具体操作在本⽂后⾯会提及。

不⾛牺牲压制时间这条路,可以通过适度降低分辨率来达到在较低码率下实现清晰的画质。

现在AB两站⼤多还是512x288或者512x384的视频,这点倒没有什么说的。

x264VFW配置详解

x264VFW配置详解

x264VFW配置详解上图为x264vfw图形化配置图。

由于没有汉化版本,使得许多使用者受到约束,望而却步。

下面结合配置图做一个能供非专业者参考的详解。

(蓝色字体是专门为非专业视频编辑者建议的推荐设置)注意:当前网络上常见的如A VI;TS;MKV等,这些视频封装格式,它们只是封装容器并视频非编码格式。

采用X246编码时视频分辨率及码率设置:全高清:(1920 x 1080),推荐7,000-8,000 Kbps常用高清:(1280 x 720)推荐5,000-6,000 Kbps普通:(640 x 480)推荐1,000-2,000 Kbps互联网:(320 x 240)推荐300-500 Kbps高清作为一种视频格式,但它却体现了拍摄、编辑、储存、传输、显示、音响效果等许多技术环节。

千万不要简单地认为使用了高清编码格式、使用了高清封装格式、使用了高清推荐的分辨率,渲染出来的视频就一定很清晰!视频是否清晰直接与素材相关,有了高清视频素材,也只能是能渲染出高清视频的第一步!好了,闲话少谈,进入x264vfw正题:H.264又称为MPEG4-A VC,MPEG系列的标准归属于ISO/IEC,但另一方面以制订国际通讯标准为主的机构:ITU-T,在完成H.263(针对视频会议之用的串流视频标准)后展开了更先进的H.264制订,且新制订是与ISO/IEC机构连手合作,由两机构共同成立一个名为JVT(Joint Video Team)的联合工作小组,以MPEG-4技术为基础进行更适于视频会议(Video Conference)运用的衍生发展,也因为是联合制订,因此在ITU-T方面称为H.264,在ISO/IEC的MPEG方面就称为MPEG-4 Part 10(第10部分,也叫ISO/IEC 14496-10),MPEG-4 Part 10的另一个代称是MPEG-4 A VC(Advanced Video Coding,先进视频编码),多个名称其实是一个意思,即H.264=MPEG-4 Part 10=ISO/IEC 14496-10=MPEG-4 A VC。

FFmpeg-X264-编码参数

FFmpeg-X264-编码参数

FFmpeg X264编码参数1.目录1.码率控制 (1)2.X264的preset和tune (2)3.编码延时建议 (2)4.ffmpeg编码参数和x264参数对照 (3)5.x264参数说明 (6)2.码率控制X264提供三种码率控制的方式:bitrate, qp, crf。

这三种方式是互斥的,使用时设置其中之一即可。

(1)bitratex264会尝试把给定的位元率作为整体平均值来编码。

这意味着最终编码文件的大小是已知的,但最终的品质未知。

此选项通常与-pass(两阶段编码)一起使用。

注意,ffmpeg中设置bitrate的具体参数为bit_rate,单位是bits/s(x264里面对应参数i_bitrate 的单位则是kbits/s, 1kbits为1000bits而非1024bits).(2)qp使用qp选项时,表示P帧的量化值为qp。

I帧和B帧的量化值则是从--ipratio和--pbratio中取得。

可使用默认参数,也可自己设定。

使用qp模式,即固定量化值,意味着停用弹性量化(aq_mode)。

当qp为0时,为无损编码。

(3)crf固定位元率系数,C onstant R ate f actor,可用的值从1到51,越小编码质量越好,码率越高。

一般使用16到24,可以为浮点。

(crf 并不是恒定质量的方式,同一片子同一crf值,其他参数不同可能码率和质量差较大,不同的片子之间就更没有可比性了)此模式把某个“质量”作为编码目标,根据片子质量自动分配码率的vbr(Variable Bit Rate 动态比特率)。

X264中构想是让crf n提供与qp n相当的视觉品质,但编码文件更小一些。

CRF是借由降低“较不重要”帧的品质来达到此目的。

在此情况下,“较不重要”是指在复杂或高动态场景的帧,其品质不是很耗费位元数就是不易察觉,所以会提高它们的量化值。

从这些帧里所节省下来的位元数被重新分配到可以更有效利用的帧。

windows下使用MinGW编译ffmpeg+x265

windows下使用MinGW编译ffmpeg+x265

Windows下使用MinGW编译ffmpeg与x265测试系统:Windows XP SP3 x86 & Windows 8.1 x642014年4月21日luofl19921、准备工作MinGW下载地址:/projects/mingw/files/点选:Installer>>进行下载,完成后开始安装 MinGW,前面的安装设置保持默认,进入到这里后,先在Basic Setup里面选择这样几项:-base -g++ -developer-toolkit如下图:接着在All packages选MSYS里面的 system-builder:选择完毕后,点Installations菜单,选择apply changes,然后确认开始下载这些库(约126个包需要下载)。

下载完成后,界面上会提示完毕,点击close按钮即可。

然后下载yasm,是一个exe文件放到MinGW的安装目录的bin文件夹,重命名为yasm.exe,或者msys/1.0/bin目录下。

下面开始的编译相应库和ffmpeg的操作需要使用MSYS,要修改C:\MinGW\msys\1.0\etc目下的fstab文件,如果不存在fstab,复制一份fstab.sample到当前目录,然后改名为:fstab,再修改其内容为C:/MinGW/mingw /minGW其中前面是MinGW的安装目录,也即为MinGW的安装路径,否则后面编译库的时候会提示缺少头文件。

下面的操作,需要在命令行下完成,不同的是通过msys进入,即运行C:\MinGW\msys\1.0目录下的msys.bat批处理文件,进入一个模拟linux系统的命令行。

如下图,注意切换目录时,相对目录与windows下一致,切换到其他盘时不同,如下图:2、编译ffmpegffmpeg可以到/releases/ 下载,我下载的是最新版本2.2版。

(注意下载的文件后缀名应该是.tar.gz如果下载下来没有这两个点的后缀,请自己加上再解压)或者:https:///FFmpeg/FFmpeg点界面右边的Download Zip下载。

ffmpeg 获取压缩参数的帮助指令

ffmpeg 获取压缩参数的帮助指令

在视瓶编码和处理过程中,压缩是一个非常重要的环节。

通过压缩参数的设定,可以对视瓶的大小、清晰度、帧率等进行调整,达到最佳的播放效果和文件大小。

了解ffmpeg获取压缩参数的帮助指令是非常必要的。

二、ffmpeg压缩参数的常见用法1. 压缩视瓶尺寸:可以通过设置-video_size参数来指定输出视瓶的尺寸。

使用`-video_size 1920x1080`来设置输出视瓶的宽高为1920和1080。

2. 压缩视瓶质量:通过设置-crf参数来指定输出视瓶的质量。

使用`-crf 23`来设置视瓶的质量为23。

3. 压缩视瓶帧率:可以通过设置-r参数来指定输出视瓶的帧率。

使用`-r 30`来设置输出视瓶的帧率为30。

4. 压缩视瓶比特率:通过设置-b参数来指定输出视瓶的比特率。

使用`-b 2000k`来设置输出视瓶的比特率为2000kbps。

1. 查看ffmpeg的帮助文档:使用以下指令可以查看ffmpeg的帮助文档,其中包含了所有可用的压缩参数及其用法:```ffmpeg -h```2. 查看压缩参数的详细说明:使用以下指令可以查看ffmpeg支持的压缩参数的详细说明,包括每个参数的用法和取值范围:```ffmpeg -hpression```3. 查看特定参数的用法:如果只想查看某个特定压缩参数的用法,可以使用以下指令:```ffmpeg -h encoder=[encoder_name]```其中,[encoder_name]为要查询的编码器名称,例如x264。

四、总结掌握ffmpeg获取压缩参数的帮助指令对于视瓶编码和处理是非常重要的。

通过查看帮助文档和详细说明,我们可以清晰地了解每个压缩参数的用法和取值范围,从而合理地进行视瓶压缩参数的设置,达到最佳的播放效果和文件大小。

希望以上内容能对您有所帮助。

为了深入了解ffmpeg的压缩参数帮助指令,我们需要进一步探讨各个参数的具体作用和如何根据实际情况进行设置。

x264宏块模式选择

x264宏块模式选择

x264宏块模式选择2009-11-08 21:55选择模式前,先把mb模块的类型列举出来。

enum mb_class_e{//以I_表示的是I帧内的宏块模式,采用帧内预测I_4x4 = 0,I_8x8 = 1,I_16x16 = 2,I_PCM = 3,//P帧的宏块模式P_L0 = 4,P_8x8 = 5,P_SKIP = 6,//B帧的宏块模式B_DIRECT = 7,B_L0_L0 = 8,B_L0_L1 = 9,B_L0_BI = 10,B_L1_L0 = 11,B_L1_L1 = 12,B_L1_BI = 13,B_BI_L0 = 14,B_BI_L1 = 15,B_BI_BI = 16,B_8x8 = 17,B_SKIP = 18,X264_MBTYPE_MAX = 19};1.p/b_skip,一种宏块类型,当图像采用帧间预测编码时,在图像平坦的区域使用“跳跃”块,“跳跃”块本身不携带任何数据,在解码端是通过 direct方式预测出MV或者直接周围已重建的宏块来恢复。

对于B片中的skip宏块是采用direct模式,有时间和空间的direct预测方式。

对于P片的skip宏块采用利用周围已重建的宏块copy而来。

(/viewthread.php?tid=994&highlight=direct)2.b_direct, 一种宏块类型,采用direct的预测模式。

3.其他参数代表的含义在<新一代视频压缩标准>中有对应的解释,见7.3.9节“宏块层的语义”.下面是将Mb分割的块列举:enum mb_partition_e{/* sub partition type for P_8x8 and B_8x8 */D_L0_4x4 = 0,D_L0_8x4 = 1,D_L0_4x8 = 2,D_L0_8x8 = 3,/* sub partition type for B_8x8 only */D_L1_4x4 = 4,D_L1_8x4 = 5,D_L1_4x8 = 6,D_L1_8x8 = 7,D_BI_4x4 = 8,D_BI_8x4 = 9,D_BI_4x8 = 10,D_BI_8x8 = 11,D_DIRECT_8x8 = 12,/* partition */D_8x8 = 13,D_16x8 = 14,D_8x16 = 15,D_16x16 = 16,X264_PARTTYPE_MAX = 17,};模式选择:A. 帧内预测:根据H.264标准规定的9种帧内4x4亮度分量预测、4种帧内16xl6亮度分量预测以及4种帧内8x8色差分量预测模式,针对宏块左邻和上邻宏块存在或缺失的不同情况,分别直接调用不同的预测函数,以节约逻辑判断的时间。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

[X264] [转贴] x264命令介绍——hero
hero
12.21 11:13
Q x264命令介绍一
语法: x264 [options] -o outfile infile [widthxheight]
infile参数是 YUV 4:2:0 格式的,如果编译的时候选择支持AVIS,那么可以是avi格式的。

outfile参数指定输出文件名,格式根据扩展名定义
.264 -> H.264码流格式
.mp4 -> MP4 ,需要支持GPAC.
Options
-h, --help 打印帮助。

-I, --keyint <integer> 最大的GOP尺寸是250
-i, --min-keyint <integer> 最小的GOP尺寸是25
--scenecut <integer> 多少间隔插入I帧(默认40)
-b, --bframes <integer> 在I帧和P帧之间B帧的数量(默认0)
--no-b-adapt 显示B帧说明
--b-bias <integer> 指示B帧如何被使用(默认0)
--b-pyramid 保持一些帧的引用
--no-cabac 不使用CABAC
-r, --ref <integer> 引用帧的数量
--nf 不使用loop filter
-f, --filter <alpha:beta> Loop filter 的 AlphaC0 和 Beta 参数 [0:0]
-q, --qp <integer> 设置QP [26]
-B, --bitrate <integer> 设置码率,注意单位是K。

--qpmin <integer> 设置最小QP值 [10]
--qpmax <integer> 设置最大QP值 [51]
--qpstep <integer> 设置最大QP 步进值 [4]
--ratetol <float> 运行变化的码率值 [1.0]
--vbv-maxrate <integer> 最大的本地码率 [0]
--vbv-bufsize <integer> VBV 缓冲区尺寸 [0]
--vbv-init <float> 初始VBV缓冲区占用率 [0.9]
--ipratio <float> 在I帧和P帧之间的QP factor [1.4]
--pbratio <float> 在P帧和B帧之间的QP factor [1.3]
--chroma-qp-offset <integer> 在 chroma和luma之间,QP调整值 [0]
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
hero
12.21 11:14
x264命令介绍二
-p, --pass <1|2|3> 激活 multipass ratecontrol:
- 1: 创建状态文件
- 2: 不重写状态文件
- 3: 在文件中显示更多信息
--stats <string> 选择2 pass状态是的文件名 [x264_2pass.log]
--rceq <string> 码率控制公式 ["blurCplx^(1-qComp)"]
--qcomp <float> QP 曲线压缩: 0.0 => CBR, 1.0 => CQP 0.60]
--cplxblur <float> 在QP时缩小波动 (从曲线压缩之前) [20.0]
--qblur <float> 在QP时缩小波动 (在曲线压缩之后) [0.5]
-A, --analyse <string> 分析选项: ["i4x4,p8x8,b8x8"]
- i4x4
- p8x8, p4x4, b8x8
- none, all
--direct <string> 指示 MV 预言模式 ["temporal"]
- none, spatial, temporal
-w, --weightb B帧的预判参数
--me <string> 整数象素运动估算模式 ["hex"]
- dia: 菱形查找, 半径 1 (fast)
- hex: 六边形查找,半径 2
- esa: 穷举搜索算法(slow)
--merange <integer> 最大的运动向量搜索矩形 [16]
-m, --subme <integer> Subpixel运动估算质量: 1=fast, 5=best. [5]
--no-chroma-me 在运动估算中忽略色度
--level <integer> 指定level(在Annex A定义)
--sar width:height 指定宽高的比率
--fps <float|rational> 指定帧率
--seek <integer> 指定编码的第一帧--frames <integer> 编码的最大帧数量-o, --output 指定输出文件
--no-asm 取消所有CPU优化
--no-psnr 取消 PSNR 估算
--quiet Quiet模式
-v, --verbose 打印每一帧的状态
--progress 在编码时显示处理指示进度--visualize 在编码视频时显示MB
--aud 使用存储分隔符。

相关文档
最新文档