x265探索与研究(四):如何编码视频?

简介: <h1 style="text-align:center">如何编码视频?</h1> <p> </p> <p>        本文介绍x265<span style="font-family:宋体">中的</span>两种编码视频方法,一是采用命令行的方法;二是GUI<span style="font-family:宋体">的方式。</span></p> <p> </p> <h2>

如何编码视频?

 

        本文介绍x265中的两种编码视频方法,一是采用命令行的方法;二是GUI的方式。

 

1命令行的方法

 

(1)、第一种方式生成*.265格式的视频文件

 

        第一种方式可以生成*.265格式的视频文件,对应的命令为:

x265 --input-res 352x288 --fps 30 hall_cif_352x288_300.yuv -o hall_cif_352x288_300.h265

 

2)、第二种方式可以生成*.bin格式的视频流文件

 

        第二种方式可以生成*.bin格式的视频流文件,对应的命令为:

x265.exe --preset fast --input hall_cif_352x288_300.yuv --fps 30 --input-res 352x288 --output out.bin --psnr --ssim --bitrate 128

 

两种方式生成的对应文件如下图所示:



        除了这两种经测试可以使用的方式外,网址:http://x265.ru/en/encode/还提供了两种略有区别的命令行方式,如下图所示:


(3)、第三种命令行的方式,可以生成*.x265*.csv

 

        下面对其进行测试,第三种命令行的方式,可以生成*.x265*.csv对应的命令为:

x265.exe hall_cif_352x288_300.yuv --input-res 352x288 --fps 30 -o out.x265 --csv results.csv --no-rect --max-merge 3 --rd 0 --tu-intra-depth 2 --tu-inter-depth 1 --no-tskip --frame-threads 2

 

        需要注意的是:该方式输入的视频必须是YUVY4M格式,帧的宽和高也必须指定且FPS也必须设定。测试过程如下图:


        测试结果如下图:


(4)、第四种命令行方式输出是*.hevc格式

 

        该命令行的方式,输入是*.y4m的视频,可以获得高质量的*.hevc格式视频,对应的命令为:

x265.exe hall_cif_352x288_300.y4m --q 17 --merange 64 --frames all --ref 4 --max-merge 3 --rect-hash 2 --me 3 --b 6 --b-adapt 1 --rd 2 --rc-lookahead 60 --input-depth 16 --tu-inter-depth 3 --tu-intra-depth 3 --no-tskip-fast --wpp --subme 2 --s 32 --F 6 -o video.hevc

 

(注:由于我这边没有*.y4m格式视频,故没有测试,后续测试,补充在此。


2GUI的方法

 

        采用“Baka Encoder”,下载网址:http://x265.ru/en/baka-encoder/



配置方式是修改Baka Encoder.config.xml,对应的代码如下所示:

<?xml version="1.0" encoding="utf-8"?>
<!-- Baka Encoder configuration file reference can be found at http://vtt.to/baka%20encoder%20configuration%20reference -->
<baka_encoder logging="0">
	<presets>
		<preset name="preview" suffix="_preview" on="1">
			<hint quality="7" compression="14" speed="6" streaming="1"/>
			<audio cmd="-br 60000"/>
			<video tool="x264" bit_depth="8" pass_count="2" max_width="480" max_height="360" resize_method="spline" base_bitrate="0" max_bitrate="0"
				cmd="--preset placebo --no-mbtree --ratetol 100.0 --keyint 60 --ref 3 --bitrate 500 --level 4.1 --vbv-bufsize 50000 --vbv-maxrate 62500"/>
			<muxing container="mp4" cmd=" --optimize-pd"/>
		</preset>
		<preset name="normal" suffix="_normal" on="1">
			<hint quality="11" compression="9" speed="3" streaming="1"/>
			<audio cmd="-q 0.6"/>
			<video tool="x264" bit_depth="8" pass_count="2" max_width="1280" max_height="960" resize_method="spline" base_bitrate="1500" max_bitrate="3500"
				cmd="--preset placebo --no-mbtree --ratetol 100.0 --keyint 60 --ref 4 --level 4.1 --vbv-bufsize 50000 --vbv-maxrate 62500"/>
			<muxing container="mp4" cmd=" --optimize-pd"/>
		</preset>
		<preset name="normal h265" suffix="_normal.h265" on="1">
			<hint quality="12" compression="9" speed="1" streaming="0"/>
			<audio cmd="-q 0.6"/>
			<video tool="x265" bit_depth="8" pass_count="2" max_width="1280" max_height="960" resize_method="spline" base_bitrate="1200" max_bitrate="10000"
				cmd="--preset slow --bframes 4 --ref 4"/>
			<muxing container="mp4" cmd=""/>
		</preset>
		<preset name="deluxe" suffix="_deluxe" on="0">
			<hint quality="14" compression="5" speed="4" streaming="0"/>
			<audio cmd="-q 1.0"/>
			<video tool="x264" bit_depth="10" pass_count="1" max_width="0" max_height="0" resize_method="" base_bitrate="0" max_bitrate="0"
				cmd="--crf 12 --preset placebo --no-mbtree --deblock 0:-1"/>
			<muxing container="mp4" cmd=""/>
		</preset>
		<preset name="deluxe h265" suffix="_deluxe.h265" on="0">
			<hint quality="15" compression="7" speed="1" streaming="0"/>
			<audio cmd="-q 1.0"/>
			<video tool="x265" bit_depth="10" pass_count="1" max_width="0" max_height="0" resize_method="" base_bitrate="0" max_bitrate="0"
				cmd="--crf 12 --preset slow"/>
			<muxing container="mp4" cmd=""/>
		</preset>
		<preset name="express" suffix="_express" on="0">
			<hint quality="7" compression="7" speed="10" streaming="0"/>
			<audio cmd="-q 0.5"/>
			<video tool="x264" bit_depth="8" pass_count="1" max_width="0" max_height="0" resize_method="" base_bitrate="1500" max_bitrate="5000"
				cmd="--preset fast --deblock 1:0 --bframes 4 --b-adapt 1 --rc-lookahead 36 --ref 3 --level 4.1 --vbv-bufsize 50000 --vbv-maxrate 62500"/>
			<muxing container="mp4" cmd=""/>
		</preset>
		<preset name="lossless" suffix="_lossless" on="0" console="0">
			<hint quality="16" compression="3" speed="8" streaming="0"/>
			<audio cmd="-q 1.0"/>
			<video tool="x264" bit_depth="8" pass_count="1" max_width="0" max_height="0" resize_method="spline" base_bitrate="0" max_bitrate="0"
				cmd="--crf 0 --preset placebo --log-level none --quiet"/>
			<muxing container="mp4" cmd=""/>
		</preset>
	</presets>
</baka_encoder>

大笑


目录
相关文章
|
3月前
|
人工智能 程序员
ChatGPT无法取代人类程序员! IEEE 35页论文测出困难编码正确率仅为0.66%
【7月更文挑战第20天】IEEE 35页论文揭示ChatGPT在复杂编码任务上的正确率仅0.66%,表明大型语言模型虽能生成语法正确代码,但在逻辑和可读性上不及人类程序员。研究强调AI在深度领域知识与推理上的局限性,提示AI辅助而非替代的角色。[链接:https://ieeexplore.ieee.org/document/10507163]
37 2
|
3月前
|
机器学习/深度学习 安全 算法
机器学习 -之one-hot编码技术
One-hot编码是一种数据处理技术,主要用于将分类变量转换为适合机器学习算法处理的格式。
34 0
|
4月前
|
机器学习/深度学习 人工智能 机器人
【机器学习】符号主义类模型:解码智能的逻辑之钥
【机器学习】符号主义类模型:解码智能的逻辑之钥
72 0
|
5月前
|
测试技术 开发者
编码之道:从简单到复杂,再回归至简
【5月更文挑战第16天】 在软件开发的世界中,我们经常面临着从需求收集到系统设计的复杂转变。本文将探讨如何通过技术洞察力和经验积累,将复杂的问题简化,实现高效且可维护的代码。我们将分析编码过程中常见的陷阱,并提出相应的解决策略,旨在帮助开发者提升代码质量,优化开发流程。
34 2
|
5月前
|
设计模式 算法
编码之道:从简单到复杂,再回归简单
【5月更文挑战第8天】 在技术的海洋中,我航行着。初入编程世界时,一切似乎都那么简单明了。随着时间的推移,我开始探索更复杂的系统,深入理解算法和数据结构。然而,在经历了无数个夜晚的代码挑战后,我开始领悟到一个道理——最优雅的解决方案往往隐藏在简约之中。本文将分享我的技术感悟之旅,从一开始的简单逻辑,到后来的复杂架构,最终如何再次找到简单的力量。
|
5月前
|
SQL 开发框架 安全
CTF基础 --隐写术与密码学编码
CTF基础 --隐写术与密码学编码
46 0
|
编解码
【HEVC学习与研究】38、HEVC编码过程中的块分割结构
【本文主要分为前后两部分,前半部分基本是Vivienne Sze、Madhukar BudagaviGary和J. Sullivan所编著的《High Efficiency Video Coding (HEVC) ——Algorithms and Architectures》的第三章前半部分的笔记,后半部分是在HM-10.0中对Intra预测时块分割相应的代码研究。
1581 0
|
编解码
HEVC学习之琐事(一):HEVC编码结构分析
<p><span style="font-size:14px"><span style="white-space:pre"></span><span style="white-space:pre"></span><span style="white-space:pre"></span>在H.264中,编码的基本单元是宏块,对于抽样格式为4:2:0的宏块,它包含一个16x16的亮度样本块和两
4615 0
编码知识大杂烩:http://www.cnblogs.com/such/p/4383490.html
01我的GitHub地址:https://github.com/heizemingjun 我的博客园地址:http://www.cnblogs.com/chenmingjun 我的蚂蚁笔记博客地址:http://blog.
1106 0
|
机器学习/深度学习 编解码 算法
宋利:编码既是技术也是艺术
责编 / Ant “好为人师,博而不精,杂而不纯。
1652 0