自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Wu_qz的博客

学习这个事儿,一年365天不能停

  • 博客(109)
  • 资源 (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 1821

原创 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 828

原创 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 1781

原创 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 7830 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 697

原创 FFMPEG filter之Timeline editing

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

2019-11-12 20:35:45 696

原创 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 514

原创 ffmpeg4.1 解码过程函数调用顺序

ffmpeg解码h264视频,解码成yuv的过程中,调用的函数顺序如下:

2019-11-08 14:48:34 407

原创 ffplay用法大全

ffplay来轮播一、录播视频ffplay -f lavfi "movie=bt709.mp4:loop=0" //movie后设置视频名称和路径

2019-11-08 10:27:54 936

原创 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 346

原创 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 13094

原创 Opencv使用日常

1. 将IplImage*转换成Mat类型变量使用Opencv自带的函数cvarrToMat()可以将指针类型转化成Mat类型

2019-04-23 09:50:31 150

原创 HEVC标准中Tile块的划分实现要求

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

2018-12-12 21:42:10 2125 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 3589

原创 音视频处理流程学习

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

2018-07-28 20:32:48 3865

原创 C++基础:控制台输入输出

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

2018-07-24 21:49:41 14315 3

原创 HM平台重要函数调用层次

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

2018-07-19 11:30:28 904

原创 使用Opencv中出现的问题汇总

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

2018-07-19 09:34:38 1193

原创 基于Opencv实现连续检测yuv转bmp后的每一帧的sobel算法实现

算法最重要的一点是要sprintf函数实现动态读取文件名 比如:sprintf(s,"%d", 123); //产生"123"#include <iostream>#include<opencv2\opencv.hpp> #include<opencv2\highgui\highgui.hpp&

2018-07-16 10:33:32 398

原创 C++学习:结构体内存对齐规则

内存对齐举例: 以下两个结构体:#include<iostream>using namespace std;struct A{ char a; int b; short c;};struct B{ short c; char a; int b;};int main(){ cout<&l

2018-07-10 13:18:42 351

原创 vs2013下动手写*.dll文件并调用它

dll文件Dynamic Link Library(即“动态链接库”)的缩写。使用dll文件好处多多。1.写dll文件

2018-06-28 11:10:54 1229

原创 vs2013下dev版本ffmpeg配置方法

1.新建工程打开vs2013 新建项目不要用空白项目,选择win32控制台应用程序

2018-06-26 13:59:24 767

原创 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 12035 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 1598

转载 windows下x265使用基本方法

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

2018-06-04 12:11:16 2755

原创 HEVC中使用参考帧注意事项

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

2018-05-16 15:28:56 1497 17

原创 C++:动态生成文件名

 该函数包含在stdio.h的头文件中,使用时需要加入:#include <stdio.h> sprintf与printf函数的区别:二者功能相似,但是sprintf函数打印到字符串中,而printf函数打印输出到屏幕上. sprintf函数在我们完成其他数据类型转换成字符串类型的操作中应用广泛。 sprintf函数的格式: int sprintf( char *buffer,...

2018-05-09 08:30:01 5673

原创 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 6102 2

原创 拼接合并yuv序列转成mp4

ffmpeg需要用支持libx264的版本,如果需要,可以从这个网站下载编译支持libx264\x265的ffmpeg。

2023-11-23 14:22:10 634

原创 webrtc音视频

【代码】webrtc音视频。

2023-04-20 10:53:21 129

原创 对libaom rt档次的一些思考

刷新的那些区域用intra编码,目的是不让每一帧变换太大,比如一个场景切换后,那基本每个块都会倾向用intra,但是用intra会导致短时码率很高,但是设置背景循环刷新,通过限制一帧中intra块的数目,达到限制瞬时码率的作用。就是一个trade off的过程,那些稍微牺牲速度就能获得比较好的压缩增益的tool放在低的speed,压缩增益导致编码速度降低比较大的tool放在较高的tool上。这些sad和var的计算都是使用simd优化,本身不占用很多资源,所有屏蔽这些地方可能并不能带来很多速度的提升。

2023-03-17 16:25:33 177

原创 AV1编码标准整体概述

那时VP8是这家公司的编解码器,谷歌收购On2后做的第一件事就是将它原封不动地开源出去,使它成为一款免专利费的编解码器。在VP9成功之后,又开始研发VP10,即VP9的下一代。但是同一时期,在线视频交付领域中占据重要地位的很多其他公司也对该项目产生了兴趣,这些公司包括Netflix、亚马逊、Facebook(现已更名为Meta)和微软等。之后,谷歌不再将VP10作为WebM项目的一部分,而是创立一个行业联盟。AV1的发展前景应该会比较好,主流的互联网及硬件厂家都在参与其中。

2023-02-18 23:47:00 1808

翻译 [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 176

翻译 [2017.1.20]x265更新日志之CBR模式下填充空数据

摘自:http://hg.videolan.org/x265/rev/cf2a247e31f0Add filler bits when frame bits < vbv target in strict-cbrCBR模式下,vbv池子满的情况下,即缓冲区马上上溢的情况下,就不要往池子里填数据,填oxffff,这样解码器就不会解这些空数据。--- a/source/encoder/frameencoder.cpp Fri Jan 20 16:44:03 2017 +0530++.

2021-08-13 17:43:02 421

翻译 [2018.10.27]x265更新日志之提出了新的AQ算法

http://hg.videolan.org/x265/rev/dea7136dce65new aq implementation It scales the quantization step size according to the spatial activity of one coding unit relative to frame average spatial activity. This AQ method utilizes the minimum variance o.

2021-08-13 17:32:12 264

翻译 [2019.3.17]x265更新日志之场景切换后降低后边帧的Qp

http://hg.videolan.org/x265/rev/d178be3b2b67连续多个b帧cost相同,判断为blank帧,那接下来的帧也成为场景切换帧,在checkAndResetABR()函数内,满足条件的情况下选择缩放m_cplxrSum官方的解释是为了降低blank帧后面帧的qp,提升质量Reduce QP for the scene changes that is followed by black frames During a scenecut, the trans

2021-08-13 17:24:50 236

原创 HEVC之MPM和PU预测模式在编码过程中的关系

HEVC编码时,根据MPM和pu的预测模式来选择使用一个bin还是5个bin编码预测模式索引,若pu的预测模式和mpm中某一模式相同,则编码mpm中的索引,用一个bin。如果pu的预测模式不属于mpm列表中的预测模式,则用5个bin编码该pu的预测模式,这个过程属于熵编码阶段,以HM为例,该过程发生在函数codeIntraDirLumaAng中。Void TEncSbac::codeIntraDirLumaAng( TComDataCU* pcCU, UInt absPartIdx, Bool isM

2020-09-25 10:30:43 824

原创 VVC之PDPC计算步骤

2020-09-24 20:13:41 587

原创 VVC之VTM帧内intra预测函数流程vtm9.2

在学习VVC的过程中,得到了不少CSDN博主文章的帮忙,这里也分享一下自己在看VTM的过程中总结的代码结构图,其中的重要函数和HM基本没变化。

2020-08-14 20:21:03 782 2

原创 python-分割字符串-获取当前文件夹名称

情况一:已知路径import osstr = "C:\\Users\\Desktop\\coding_tools\\run_exe"path_list = str.split("\\")cur_filename = path_list[-1]情况二:路径会变import osstr = os.getcwd()path_list = str.split("\\")cur...

2020-04-16 20:27:06 1175 2

CutYUVInXFrame.zip

读取yuv文件后截取指定的帧,内含C++源码。注:本代码只支持处理yuv420视频,工程是使用vs2015建立的,低版本的vs工具,把cpp文件拷贝到新建工程即可

2019-05-28

视频编码发展史_RTC2017北大马伟思教授PPT

RTC 2018会议上马伟思教授的演讲PPT,介绍视频编码发展史,baidu云下载链接https://pan.baidu.com/s/1HqeTiiLitb3DhGANwBq6GA 提取码:xqdk

2018-12-04

ffmpeg在window下编译的文件集合

该压缩包包含:(1)c99-to-c89-1.0.zip;(2)msinttypes-r26.zip;(3)yasm-1.3.0-win32.exe;

2018-08-12

c++源码截取yuv420前n帧视频

c++源码,从main函数参数传入原始yuv文件、重建yuv文件、图像高度、图像宽度、截取帧数。

2018-07-27

截取YUV文件前n帧

基于命令行实现。本文件支持yuv420文件读取并截取前n帧,内含使用说明。

2018-07-27

MbrFix.exe压缩包

在windows系统与Ubuntu双系统中,不能直接把安装Ubuntu系统的磁盘格式化,而需要经过一些操作,该exe可以用来卸载ubantu系统

2018-07-04

基于vs2013已经配置好的32位ffmepg-dev库

本压缩包是基于win32下使用vs2013配置好的FFMPEG-dev版本,解压后直接能用,无需额外配置

2018-06-26

基于vs2013已经配置好的64位ffmepg-dev库

本压缩包是配置好的基于x64的vs2013下编码的ffmpeg-dev库,无需额外配置,解压后就能直接使用

2018-06-26

window win32下配置好的SDL

该压缩包是已经直接配置好的WIN32下vs2013+SDL的配置平台,解压后直接可用不需要再配置

2018-06-26

YUV420文件任意帧指定范围区域截取并保存

本算法可实现yuv420读取;yuv420显示;yuv420文件指定帧中指定指定区域显示并保存

2017-12-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除