x265探索与研究(四):怎样编码视频?
怎样编码视频?
本文介绍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
须要注意的是:该方式输入的视频必须是YUV或Y4M格式。帧的宽和高也必须指定且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格式视频,故没有測试,兴许測试,补充在此。
)
2、GUI的方法
採用“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>
x265探索与研究(四):怎样编码视频?的更多相关文章
- x265探索与研究(六):main()函数
x265探索与研究(六):main()函数 x265源代码的入口函数是main(),本文分析main()的主要功能. 首先给出main()函数的功能及其代码结构:其次给出main()函数源代码以及分析 ...
- 视频处理控件TVideoGrabber如何重新编码视频/音频(2)
在前面的文中<视频处理控件TVideoGrabber如何重新编码视频>已经讲解了部分TVideoGrabber重新编码音频.视频剪辑的内容,下面将继续说明. 重新编码进程 重新编码开始时, ...
- Shiro笔记(四)编码/加密
Shiro笔记(四)编码/加密 一.编码和解码 //base64编码.解码 @Test public void testBase64(){ String str="tang"; b ...
- 王爽-汇编语言-综合研究四-不使用main函数编程
(一) 研究目的 使用C语言编程,我们一定要使用main函数么? (二) 研究过程 1) 最初的程序 首先,我们编写一个不写main函数的C语言程序. 程序如下: 在编译的过程中,没有发现错误.在链接 ...
- 视频处理控件TVideoGrabber如何重新编码视频
TVideoGrabber中可以对音频.视频剪辑进行重新编码剪辑,多的朋友知道这个功能更点,但是具体操作上还是不是很熟悉,这里总结一下,主要步骤如下: 1.通过指定开始和停止的时间,可以简单的剪辑视频 ...
- Python学习(四) —— 编码
一.枚举 enumerate,for i in enumerate(可迭代对象),返回元组,内容是(序列号,可迭代的每一个元素) for i,j in enumerate(可迭代对象,开 ...
- Qt与FFmpeg联合开发指南(四)——编码(2):完善功能和基础封装
上一章我用一个demo函数演示了基于Qt的音视频采集到编码的完整流程,最后经过测试我们也发现了代码中存在的问题.本章我们就先处理几个遗留问题,再对代码进行完善,最后把编码功能做基础封装. 一.遗留问题 ...
- ROS探索总结(四)——简单的机器人仿真
前边我们已经介绍了ROS的基本情况,以及新手入门ROS的初级教程,现在就要真正的使用ROS进入机器人世界了.接下来我们涉及到的很多例程都是<ROS by Example>这本书的内容,我是 ...
- Python学习笔记(四)——编码和字符串
一.编码 1.编码类别: (1)ASCII码:127个字母被编码到计算机里,也就是大小写英文字母.数字和一些符号 (2)GB2312码:中国制定的用于加入中文汉字的编码 (3)Unicode:防止由于 ...
随机推荐
- POJ——T 3250 Bad Hair Day
http://poj.org/problem?id=3250 Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 19619 ...
- 简单的横向ListView实现(version 3.0)
版本号2仅仅是简单的实现了当手指按下的时候listView的Item向左移动一定的距离,并没有随着手指的左右移动而左右滚动.在这个版本号3.0中将会实现随着手指的移动而滚动的目标:当手指向左移动的时候 ...
- Appium IOS 自己主动化測试初探
手机平台的自己主动化測试工具非常多,之前研究过了安卓和苹果的原生自己主动化測试框架.经一些同事介绍,貌似Appium是个不错的工具. 想记录一下研究的结果,也算是篇干货的文章 在网上也看了一些视频.个 ...
- 洛谷P2147 [SDOI2008]Cave 洞穴勘测
题目描述 辉辉热衷于洞穴勘测. 某天,他按照地图来到了一片被标记为JSZX的洞穴群地区.经过初步勘测,辉辉发现这片区域由n个洞穴(分别编号为1到n)以及若干通道组成,并且每条通道连接了恰好两个洞穴.假 ...
- bzoj3786星系探索(splay维护dfs序)
Description 物理学家小C的研究正遇到某个瓶颈. 他正在研究的是一个星系,这个星系中有n个星球,其中有一个主星球(方便起见我们默认其为1号星球),其余的所有星球均有且仅有一个依赖星球.主星球 ...
- 三、Docker镜像的相关操作
原文:三.Docker镜像的相关操作 一.查看本地镜像: docker images 二.使用某个镜像来运行容器: docker run -t -i xxxx(镜像名):xx.xx(版本,不带即最新) ...
- HDU 3232 && UVA 12230 (简单期望)
Crossing Rivers Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- amazeui学习笔记一(开始使用2)--布局示例layouts
amazeui学习笔记一(开始使用2)--布局示例layouts 一.总结 1.样例分析(不要忘记,优先分析这个布局示例):有教你页面怎么布局的,实例中可以分析一波 2.响应式:对应meta标签中的v ...
- “焦点图/幻灯片”“Tab标签切换”“图片滚动”“无缝滚动”仅需一个SuperSlidev2.1
官网:http://www.superslide2.com/index.html 1. 标签切换 / 书签切换 / 默认效果 2. 焦点图 / 幻灯片 3. 图片滚动-左 4. 图片滚动-上 5. 图 ...
- Servlet的异常处理机制
一 声明式异常处理 在web.xml中对声明对各种异常的处理方法. 通过 <error-page>元素来声明. 此元素的结构如下: +------ ...