- 博客(116)
- 资源 (10)
- 收藏
- 关注

原创 文件夹目录下图片合成视频
规则命名图片合成视频文件这个很简单,如果手上的图片本身就是用ffmpeg生成的,比如:ffmpeg -i input.mp4 -r 20 -f image rec_%3d.jpg这样生成的图片是形如 rec_0001.jpg rec_0002.jpg ..... ,rec_0123.jpg等图片形式,这些有规则的图片,想把这些图片合成视频,这样操作即可:ffmpeg -...
2020-04-11 23:00:19
2312

原创 x265/x264 获取cu的qp的逻辑
(1)帧级码率控制会得到一个帧级baseQp,发生在:rateEstimateQscale()函数中(2)之后,如果开启vbv的时,会进行帧内行级别的码控,会在行级得到一个baseQp,发生在:rowVbvRateControl()函数中(3)之后,在编码每个cu的时候,如果开启cutree或者aq_mode,会在baseQp的基础上加qpoffset,发生在:calcu...
2020-04-03 11:09:48
1040

原创 YUV格式转换YUV分辨率转换YUV下采样YUV10bit转8bitYUV422转420
看见这个标题,不会想到自己编程实现吧? ffmpeg这么好,为什么不用呢1.yuv 10bit 转yuv 8bit./ffmpeg -s 3840*1920 -pix_fmt yuv420p10le -i input.yuv -s 3840*1920 -pix_fmt yuv420p out_yuv420p.yuv...
2020-03-31 14:17:10
2081

原创 ffmpeg 之video filter 大全(待整理)
截止到19年11月13日,ffmpeg官网上显示,ffmepg目前已有的video filter是233个。本文以ffmepg4.1为例,介绍各个video filter的用途和用法。每个filter都力求在命令行内实例运行,并给出参考代码。addroi指定视频中若干个区域为感兴趣区域,但是视频帧信息不改变,只是在metadata中添加roi的信息,影响在稍后的编码过程中,ff...
2019-11-19 22:43:11
8707
1

原创 ffmepg bitstream filter 之 prores_metadata
这个bitstream filter可以给已编码的码流文件添加colorspace色域信息或修改色域信息。但这个filter 只支持改变苹果ProRes422编码的视频流的色域信息。对mp4封装格式也不支持。mov支持若使用h264编码的源利用prores_metadata改变色域信息,会报错,如下所示:[AVBSFContext @ 0x7fa9c7c074c0] Codec ...
2019-11-13 20:32:00
867

原创 FFMPEG filter之Timeline editing
有些filter是支持enable参数的。比如drawtext,对于这些支持enable参数的filter,这个参数通过判断一些逻辑问题,来判断当帧是否进入这个filter,如果逻辑是零,那就不改变帧的信息,把帧传入filtergraph中当前filter 的下一个filter中;如果逻辑是非零,那当前帧就进入该filter,接受这个filter的处理,处理完该帧后再传给下一个filter...
2019-11-12 20:35:45
868

原创 FFMPEG filter之注意事项
没有pad的filter叫source filter;没有output的filtr 叫sink filter; ffplay 中,使用-vf、-af;ffmpeg中,使用-filter、-vf、-af、-filter_complex 符号 ' (英文单引号)可以把一个命令参数列表包含起来,其中可以在引号内使用 \来表示转义字符。如果不使用 ' (单引号),下个字符正好遇见 ‘[]=;,’,作为...
2019-11-12 20:17:36
677

原创 ffplay用法大全
ffplay来轮播一、录播视频ffplay -f lavfi "movie=bt709.mp4:loop=0" //movie后设置视频名称和路径
2019-11-08 10:27:54
1021

原创 printf、sprintf、fprintf三者区别、stdout, stdin, stderr三者区别
1,printf就是标准输出,在屏幕上打印出一段字符串来。 2,sprintf就是把格式化的数据写入到某个字符串中。返回值字符串的长度。 3,fprintf是用于文件操作。 原型:int fprintf(FILE *stream,char *format,[argument]); 功能:fprintf()函数根据指定的format(格式)发送信息(参数)到由stream(流)指定的文件.因...
2019-11-03 23:06:29
469

原创 x265的编码参数preset级别对性能的影响
preset的含义 preset与编码速度和质量有关,可优化编码速度(每秒编码帧数)和压缩效率(比特流中每比特的质量)之间的权衡。 以x265为例,preset有ultrafast,superfast,veryfast,faster,fast,medium,slow,slower,veryslow,placebo这10个级别,每个级别的preset对应一组编码参数,不同级别的pr...
2019-04-24 17:51:48
16588

原创 Opencv使用日常
1. 将IplImage*转换成Mat类型变量使用Opencv自带的函数cvarrToMat()可以将指针类型转化成Mat类型
2019-04-23 09:50:31
216

原创 HEVC标准中Tile块的划分实现要求
Tile块的划分是可以在配置文件里开启,并且有选择均匀划分和非均匀划分两种。划分的Tile块大小:水平方至少256个像素,垂直方向至少64个像素均匀划分 42:非均匀划分 42:但是如下这种划分方式是无法实现的!Tile的划分方式一经确定,貌似是对所编码的所有序列适用,不能再对某一帧的Tile划分方式做出改变....
2018-12-12 21:42:10
2355
3

原创 【实现】批处理当前目录下的所有txt文件
目的:最近跑实验生成了很多txt的文件,要提取txt文件中的指定内容,然后就写了个算法定向读取txt中的信息并想把这些信息存储在csv文件中,一个目录下几十个txt,如果这样写@echo offtxtToCsv.exe 1.txt result.csvtxtToCsv.exe 2.txt result.csv...//这样写是不是有点low...txtToCsv.exe 1000....
2018-08-08 21:51:24
3960

原创 音视频处理流程学习
在网易云课堂找到了一个很好的讲解网络传输音视频流程的视频,视频内容是网易云音视频技术专家。附链接:http://study.163.com/course/courseMain.htm?courseId=1003413003课时一: 先附一张音视频处理的流程图。 关键词:推流、拉流、RTMP、CDN、HLS、HTTP、webRTC...
2018-07-28 20:32:48
4057

原创 C++基础:控制台输入输出
输出流C++的类ostream提供了格式化输出和无格式输出的功能 输出功能包括用流插入运算符输出标准类型的数据; 用成员函数put输出字符; 成员函数write的无格式化输出; 输出特定形式数值1.标准类型的数据用流插入运算符<<输出格式: cout << 数据项 ;C++能自动判别数据类型,并根据数据类型解释内存单元的信息,把...
2018-07-24 21:49:41
16988
3

原创 HM平台重要函数调用层次
按照调用层次结构列出各个cpp文件//TEncTop.cpp中encode()函数 按调用顺序列出各个cpp文件//TAppEncTop.cpp中 ,仅列出重要函数Void TAppEncTop::encode(){--------------省略一部分函数----------------- while ( !bEos )//该循环直到所有需要编码的帧已编码后才结束,否则b...
2018-07-19 11:30:28
1024

原创 使用Opencv中出现的问题汇总
把平时使用opencv过程中遇到的问题汇总并把解决办法记在这里。不保证对每个人都适用。1.问题1:配置好Opencv导入到HEVC的HM测试平台后,fatal error C1083: 无法打开包括文件:“iostream”:编译提示找不到&lt; iostream&gt;、&lt; vector&gt;等头文件。解决办法:网上绝大部分配置Opencv的教程都是将头文件和lib库使用“”包...
2018-07-19 09:34:38
1387

原创 基于Opencv实现连续检测yuv转bmp后的每一帧的sobel算法实现
算法最重要的一点是要sprintf函数实现动态读取文件名 比如:sprintf(s,"%d", 123); //产生"123"#include &lt;iostream&gt;#include&lt;opencv2\opencv.hpp&gt; #include&lt;opencv2\highgui\highgui.hpp&
2018-07-16 10:33:32
457

原创 C++学习:结构体内存对齐规则
内存对齐举例: 以下两个结构体:#include&amp;amp;lt;iostream&amp;amp;gt;using namespace std;struct A{ char a; int b; short c;};struct B{ short c; char a; int b;};int main(){ cout&amp;amp;lt;&amp;amp;l
2018-07-10 13:18:42
428

原创 vs2013下动手写*.dll文件并调用它
dll文件Dynamic Link Library(即“动态链接库”)的缩写。使用dll文件好处多多。1.写dll文件
2018-06-28 11:10:54
1323

原创 FFMPEG学习:三种版本(static、shared、dev)和常用命令集
1.FFMPEG的三种版本FFMPEG(https://ffmpeg.zeranoe.com/builds/)分为3个版本:Static,Shared,Dev。前两个版本可以直接在命令行中使用,他们的区别在于:Static里面只有3个应用程序:ffmpeg.exe,ffplay.exe,ffprobe.exe,每个exe的体积都很大,相关的Dll已经被编译到exe里面去了。Shared里面除了...
2018-06-26 10:32:44
12914
4

转载 [详细]VS中C++的包含目录、附加包含目录和库目录和附加库目录的区别
转载自:https://blog.csdn.net/theonegis/article/details/42913255对Visual Studio中C++的包含目录、附加包含目录和库目录和附加库目录的区别不是很清楚,参考别人的文章整理出来的。供大家分享学习!Visual Studio C++工程中,右键一个Project,可以发现有两个地方设置Include的相关目录:1. V...
2018-06-26 09:15:39
1684

转载 windows下x265使用基本方法
转载自:https://yq.aliyun.com/articles/31081x265使用基本方法&nbsp; &nbsp; &nbsp; &nbsp; 首先,完成x265的下载安装与配置。(参考网址:http://blog.csdn.net/frd2009041510/article/details/50446007)接下来介绍x265编解码视频的基本方法。第一步:&...
2018-06-04 12:11:16
3232

原创 HEVC中使用参考帧注意事项
1.背景: 这几天写了个算法,需要使用前一帧对应位置CTU的深度划分信息、YUV信息等,平台是HM16.7,随机存取编码模式。 初始的算法是除了第一帧不需要利用前一参考帧信息(第一帧是I帧也不存在参考帧)外,其余帧都需要使用参考帧来预测当前帧的划分深度。需要使用到TComDateCU.h 中的TComDataCU* m_apcCUColocated[NUM_REF_PIC_LIST_0...
2018-05-16 15:28:56
1725
17

原创 C++:动态生成文件名
该函数包含在stdio.h的头文件中,使用时需要加入:#include &amp;amp;lt;stdio.h&amp;amp;gt; sprintf与printf函数的区别:二者功能相似,但是sprintf函数打印到字符串中,而printf函数打印输出到屏幕上. sprintf函数在我们完成其他数据类型转换成字符串类型的操作中应用广泛。 sprintf函数的格式: int sprintf( char *buffer,...
2018-05-09 08:30:01
5998

原创 Visual Assist X 破解教程【window10+vs2013】
手里之前有个破解版的Visual Assist 助手(网盘点击打开链接),当时直接setup了,以为是免激活,可过了一段时间说要key。这里记录一下破解的流程。1.下载Visual Assist 助手并解压得到如图1所示的文件。 其中压缩包里“VA_X.dll”这个文件是用来替换“VA_X_Setup2007.exe”后生成的VA_X.dll,换句话说,压缩包里的VA...
2018-04-22 21:06:34
6580
2
原创 AV1技术剖析之块划分
Tile是可以独立编解码的,所以相邻Tile的边界不能作为作为参考像素被另外Tile内的CU参考。Tile最少包含一个SuperBlock,一帧图像包含的Tile个数不能超过 MaxTiles个, MaxTiles的值跟level有关。不同level规定了Tile的最大宽度是4096,最大尺寸是4096x2304,一帧图像也最多包含512个tile。AV1支持多叉划分,具体是每层CU支持10种CU划分类型,其中四叉树QT划分类型的CU支持继续递归划分成子CU,而其余9种CU不支持再接着划分。
2025-02-08 11:34:42
95
原创 webrtc代码走读之rtc::ArrayView<const uint8_t>
是 WebRTC(或其他基于rtc命名空间的库)中常见的一个类型,它通常用于表示一块,该内存区域由一系列uint8_t类型(无符号 8 位整数)元素组成。
2025-01-09 21:49:20
620
原创 h264之多视点mvc编码及解码过程(JMVC平台举例)
h264标准参考平台JMVC是针对MVC标准的,JMVC支持编码、合流、解码MVC视频。可以利用JMVC生成h264 mvc码流。H264AVCDecoderLibTestStatic.exe 是解码合并后的码流,解码出各个视点的yuv。H264AVCEncoderLibTestStatic.exe 是编码MVC码流的可执行程序。MVCBitStreamAssemblerStatic.exe 是合并MVC各视点码流的工具。windows平台上JMVC用visual studio生成可执行程序。
2025-01-07 10:22:03
483
原创 webrtc 源码阅读 make_ref_counted模板函数用法
webrtc中make_ref_counted模板函数来初始化重要的类对象
2024-12-29 12:52:02
1073
原创 av1支持的CU划分
只有四叉允许递归划分,其余划分只划分到本层。最大编码单元也扩展到128x128,最小编码单元4x4。av1只有4叉划分支持递归划分。
2024-06-24 15:55:50
220
原创 拼接合并yuv序列转成mp4
ffmpeg需要用支持libx264的版本,如果需要,可以从这个网站下载编译支持libx264\x265的ffmpeg。
2023-11-23 14:22:10
876
原创 对libaom rt档次的一些思考
刷新的那些区域用intra编码,目的是不让每一帧变换太大,比如一个场景切换后,那基本每个块都会倾向用intra,但是用intra会导致短时码率很高,但是设置背景循环刷新,通过限制一帧中intra块的数目,达到限制瞬时码率的作用。就是一个trade off的过程,那些稍微牺牲速度就能获得比较好的压缩增益的tool放在低的speed,压缩增益导致编码速度降低比较大的tool放在较高的tool上。这些sad和var的计算都是使用simd优化,本身不占用很多资源,所有屏蔽这些地方可能并不能带来很多速度的提升。
2023-03-17 16:25:33
290
原创 AV1编码标准整体概述
那时VP8是这家公司的编解码器,谷歌收购On2后做的第一件事就是将它原封不动地开源出去,使它成为一款免专利费的编解码器。在VP9成功之后,又开始研发VP10,即VP9的下一代。但是同一时期,在线视频交付领域中占据重要地位的很多其他公司也对该项目产生了兴趣,这些公司包括Netflix、亚马逊、Facebook(现已更名为Meta)和微软等。之后,谷歌不再将VP10作为WebM项目的一部分,而是创立一个行业联盟。AV1的发展前景应该会比较好,主流的互联网及硬件厂家都在参与其中。
2023-02-18 23:47:00
2600
翻译 [2014.10.05]x265更新日志之添加滑动窗口概念用于判断是否需要重置ABR状态
在版本https://hg.videolan.org/x265/rev/e29a82632d1e中添加了滑动窗口的概念,原理是利用当前帧之前的20帧信息平均值用于判断当前帧是否过于复杂,或者前多帧是否为静止帧。以防止当前帧编码后出现下溢。rc: use a sliding window to calculate moving avg SatdCost for ABR Reset logic contains improvements for detection of scene changes wit
2021-08-19 09:43:58
307
CutYUVInXFrame.zip
2019-05-28
视频编码发展史_RTC2017北大马伟思教授PPT
2018-12-04
ffmpeg在window下编译的文件集合
2018-08-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人