- 博客(191)
- 资源 (31)
- 收藏
- 关注
原创 ps流封装了解
其基本流标识为‘0x e0’,表视频数据,若需解析PES header,则需从PES header的第8个字节提取详细信息的列表状态,如上图中PES header的第8个字节为‘0x c0’,则换算为二进制值为‘1100 0000’,则对照PES header可知,PTS_DTS_flags的值为‘11’,即PTS字段和DTS字段都应出现在PES header中,而其余信息的标志字段(_flags)皆为‘0’,则此PES header中并无相应的字段内容;其分为MPEG-1和MPEG-2两部分。
2024-12-31 11:10:04
633
原创 OpenCL 执行模型
需要指出的是,执行原生内核是OpenCL的一个可选功能,原生内核的语义依赖于具体OpenCL实现。主机端程序运行在主机处理器上,主机端程序以命令方式将内核程序从主机提交到OpenCL设备,OpenCL设备在处理单元上执行计算。根据这两个不同执行单元定义了OpenCL执行模型。由于OpenCL设备通常没有IO处理能力,因此IO操作通常由主机承担,这意味着程序开始执行时,数据通常都在主机上,故OpenCL设备需要从主机上获得数据,在OpenCL设备计算完成后,又需要将数据从OpenCL设备复制回主机。
2022-12-29 14:46:01
499
原创 OpenCL 平台模型
OpenCL设备可以是CPU(也可以将主机端的CPU作为OpenCL设备)、GPU、DSP、FPGA或硬件商提供、OpenCL开发商支持的任何其他处理器。每个OpenCL设备有一个或者多个计算单元(ComputeUnits,CU),而每个计算单元又由一个或多个处理单元(Processing Elements,PE)组成,处理单元是设备上执行数据计算的最小单元。OpenCL平台模型包含一个主机及一个或多个OpenCL设备,每个OpenCL设备包含一个或多个计算单元,每个计算单元包含一个或多个处理单元。
2022-12-29 14:38:47
484
原创 OpenCL 是什么
2008年,苹果公司向Khronos Group提交了一份关于跨平台计算框架的草案,该草案由苹果公司开发,并与AMD、IBM、Intel和NVIDIA公司合作逐步完善。这个跨平台计算框架就是OpenCL(Open Computing Language,开放计算语言)。2008年12月8日,OpenCL 1.0技术规范发布。2010年6月14日,OpenCL 1.1发布。2011年11月19日,OpenCL 1.2发布。2013年11月19日,OpenCL 2.0发布。
2022-12-29 14:17:26
1908
原创 FFmpeg简单使用:解封装h264 ---- 提取SPS PPS
2_bit: 数据长度-1:avcc格式是extradata | [length] [nalu] | [length][nalu],这里length所占的字节数就是3(11)+ 1 = 4。0x28: avc level (首个SPS的第3个字节,可以发现后面0x0989位置的3个字,和这3个是一样的)0x67: [0110 0111] nalu_type为7,表示SPS,就是说从0988到099f这24个数据为sps。5_bit: 接下来的sps或pps的个数::这里为1。3_bit: 默认 111。
2022-12-27 14:22:40
1463
1
原创 FFmpeg简单使用:过滤器 ---- h264_mp4toannexb
表示存在多个nalu。我们可以看到,下一个并不是简单变为00 00 00 01,而是插入了一个nalu,再下一个nalu(f885位置),才是之前的nalu。AVPacket中的data格式是:size(4个字节)+ nalu + size(4个字节)+ nalu,一个packet可能会存在多个nalu,前面size表示nalu的大小(不包含自身)4字节类型的开始码在在连续的数据传输中非常有用,因为用字节来对齐、分割流数据,比如:用连续的31个bit0后接一个bit1来分割流数据,是很容易的。
2022-12-27 14:20:12
2432
原创 FFmpeg简单使用:过滤器 ---- 视频过滤2
⼀个filter可以有多个输⼊和多个输出,没有输⼊的filter称为source filter,没有输出的filter称为sink filter。例如,scale filter 的前两个选项分别是w和h,当参数列表为“iw/2:ih/2”时,iw/2的值赋给w,ih/2的值赋给h。它由两个filter组成,crop和vflip,crop的输⼊ 为[tmp],vflip的输出标识为[flip]。2. 每个filter都连接到序列中的前⼀个filter,即前⼀个filter的输出是后⼀个filter的输⼊。
2022-12-27 14:15:42
1013
原创 FFmpeg简单使用:过滤器 ---- 视频过滤
这个例⼦的处理流程如上所示,⾸先使⽤split滤波器将input流分成两路流(main和tmp),然后分别对两路流进⾏处理。对于tmp流,先经过crop滤波器进⾏裁剪处理,再经过flip滤波器进⾏垂直⽅向上的翻转操作,输出的结果命名为flip流。再将main流和flip流输⼊到overlay滤波器进⾏合成操作。上图的input就是上⾯提过的buffer源滤波器,output就是上⾯的提过的buffersink滤波器。所有这些信息都统⼀由AVFilterGraph来管理。
2022-12-27 14:12:46
408
原创 FFmpeg简单使用:视频编码 ---- YUV转H264
tune是x264中重要性仅次于preset的选项,它是视觉优化的参数,tune可以理解为视频偏好(或者视频类型),tune不是⼀个单⼀的参数,⽽是由⼀组参数构成-tune来改变参数设置。⼀个编码速度稍慢的预设会提供更⾼的压缩效率(压缩效率是以⽂件⼤⼩来衡量的)。这就是说,假如你想得到⼀个指定⼤⼩的⽂件或者采⽤恒定⽐特率编码模式,你可以采⽤⼀个较慢的预设来获得更好的质量。从本地读取YUV数据编码为h264格式的数据,然后再存⼊到本地,编码后的数据有带startcode。获取到编码后的AVPacket数据。
2022-12-27 14:07:40
4294
3
原创 FFmpeg简单使用:解封装 ---- 基本流程
3.读取媒体的部分数据包以获取码流信息avformat_find_stream_info。4.2 定位文件avformat_seek_file或av_seek_frame。2.根据url打开本地文件或网络流avformat_open_input。1.分配解复用器上下文avformat_alloc_context。4.1 从文件中读取数据包av_read_frame。5.关闭解复用器avformat_close_input。4.读取码流信息:循环处理。
2022-12-27 13:41:14
566
原创 db和ISO换算
电压(电流)分贝数对应摄像机中图像的信号增益,所有与ISO值也是一一对应关系。电压(电流)放大倍数分贝数定义:K = 20*lg(V1/V0);功率放大倍数:K = 10*lg(P1/P0);K是放大倍数,V0是输入信号,V1是输出信号。K是放大倍数,P0是输入信号,P1是输出信号。
2022-10-27 10:14:29
1018
原创 Linux内核配置
基于Linux Kernel v2.6.36-gentoo-r5General setup --->[*]Prompt for development and/or incomplete code/drivers//默认情况下是选择的,这将会在设置界面中显示还在开发或者还没有完成的代码与驱动.你应该选择它,因为有许多设备可能必需选择这个选项才能进行配置,实际上它是安全的。() Cross-compiler tool prefix//交叉编译工具前缀,如果你要使用交叉编译工具的话输入相关前缀。默认
2022-07-04 11:42:38
3077
原创 海思平台移植QT5.10带触摸-TSLIB
海思3516移植Qt过程还是比较简单,因为海思没有提供硬件加速opengl库,所以我们去掉opengl功能,使用linuxfb作为图象渲染插件。这里由于要使用触摸屏,所以需要移植tslib进行触屏支持。一、移植TSLIB1.安装交叉编译器(这里不介绍安装过程,按照海思提供的readme进行安装即可)2.下载tslib最新源码:GitHub - libts/tslib: Touchscreen access library3.安装依赖工具:sudo apt-get install autoconf
2022-04-08 10:27:22
1023
1
原创 Qt基本控件及三大布局
Qt基本模块一、Qt的三大布局QHBoxLayout: 水平显示布局,所有在其上面摆放的控件只能水平排列下去; QVBoxLayout: 垂直显示布局,所有在其上面摆放的控件只能垂直排列下去; QGridLayout 格子显示布局,可以按照表格的形式显示布局; 二、Qt的控件label:标签,可以显示文本信息,只读; pushbutton : 普通按钮; radiobutton : 单选按钮,多个单选按钮中只能选择一个,但是必须放入groupbox...
2022-03-17 15:51:57
1960
原创 QT 4截图
// 界面截图void GMainWindow::widgetScreenshot(){ QString filePathName = "Screen-.png"; QPixmap pixmap = QPixmap::grabWindow(QApplication::desktop()->winId()); //filePathName += QDateTime::currentDateTime().toString("yyyy-MM-dd hh-m...
2022-03-14 09:42:23
269
原创 ARGB转png
1、生成png图片生成无压缩PNG图片:GitHub - miloyip/svpng: Minimalistic C function for saving RGB/RGBA image as uncompressed PNG.//------------------ svpng.h---------------------/*! \file \brief svpng() is a minimalistic C function for saving RGB/RGBA ima
2022-03-12 11:10:36
886
原创 Qt 图形特效(Graphics Effect)
QGraphicsEffect也是Qt-4.6引入的一个新功能。它让给图形元素QGraphicsItem增加更佳视觉效果的编程变得非常简单。上图中最上面的那个图片是没有使用QGraphicsEffect处理的原图,下面的四个图片分别代表了模糊,变色,透明和阴影效果。对应使用了 QGraphicsEffect的4个子类QGraphicsBlurEffect, QGraphicsColorizeEffect, QGraphicsDropShadowEffect, 和 QGraphicsOpacityEffe
2022-03-11 15:49:10
1096
转载 ffmpeg解封装mov
最近在研究ffmpeg,发现网上关于ffmpeg解封装的源码分析不多而且不全,所以这里总结一下,我自己对ffmpeg解封装mov、mp4格式的源码分析主要就是关于mov.c的源码分析,让各位同学了解一下,mp4的流AVStream、AVPacket是如何赋值的,这两个结构体变量会是解码的输入数据,了解解封装过程,如pts、dts是如何得到的,有助于ffmpeg的二次开发。关于MP4协议,网上有详细的描述,我这里就不在写了,直接上干货,代码书注释。所有接口和数据结构写的都很详细,但是研究了好一阵,写起来超
2021-11-09 10:24:50
920
原创 FFmpeg的MOV封装解析
目录参考 概述 mov_read_header mov_read_packet mov_read_seek mov_read_close1. 参考[1] github.com/FFmpeg/FFmpeg/blob/master/libavformat/mov.c [2] wangcong02345/ffmpeg源码分析--11.mov的mov_read_header [3] wangcong02345/ffmpeg源码分析--12.mov的mov_read_packet [4]..
2021-11-08 19:18:29
3650
转载 VMware安装MAC OS10.14
前言 一直想搞个黑苹果玩玩,奈何黑苹果双系统的操作步骤太过复杂,就决定先装个虚拟机体验一下。之前不想在Windows和Ubuntu之间来回切换系统,也曾用虚拟机装过Ubuntu。虚拟机的好处就是方便且易于复制,但缺点也很明显,依附于Windows系统,不能享用电脑硬件的100%的硬件资源。1.工具准备VMware15 unlocker解锁工具(可能需要Python环境,我之前安装过Python3.7) MAC OS Mojave 10.14懒人版安装所需的软件百度网盘-链接不存在;密码8
2021-10-22 15:28:15
1356
原创 关于3520D回音抵消功能的一点总结
最近在使用3520D芯片,要求增加回音抵消功能,优化对讲效果。通过实验发现一下几点:1. 直接调用HI_MPI_AI_EnableAec()接口去开启回音抵消功能没有效果,而且调用之后ai线程里面连ai数据都获取不到了。2. 通过设置VQE属性参数,可以开启aec回音抵消功能,调用接口HI_MPI_AI_SetVqeAttr()设置 AI 的声音质量增强功能相关属性3. 回音抵消功能开...
2021-10-22 14:52:49
307
原创 ffmpeg AVPacket结构体及其相关函数
目录0. 简介 1. AVPacket数据结构定义 2. AVPacket相关函数正文回到顶部0. 简介AVPacket结构体并不是很复杂, 但是在ffmpeg中用的非常多. 与其相关的函数也是比较多.AVPacket保存了解复用之后, 解码之前的数据, 和这些数据相关的一些附加信息.对于视频来说, AVPacket通常包含一个压缩的frame; 而音频可能包含多个压缩的frame. 一个packet也可能是空的, 不包含任何压缩数据data, 而只包含附加数据side .
2021-10-22 14:51:48
277
原创 Oracle VM VirtualBox安装配置Mac OS
一、在 Windows 10 上创建 macOS 虚拟机需要哪些文件?在深入研究“操作方法”之前,您需要下载并安装基本工具。本教程详细介绍了如何使用Oracle VirtualBox Manager (VirtualBox)和VMware Workstation Player(VMware Player)创建 macOS 虚拟机。相关:VirtualBox 与 VMware Player:适用于 Windows 的最佳虚拟机下载最新版本的 VirtualBox。本教程使用 Virtua...
2021-10-21 10:49:09
4979
4
原创 H264、H265 Nalu头部解析
H264Nalu头部解析一 NALU头部解析F:forbidden_zero_bit. 在 H.264 规范中规定了这一位必须为 0.NRI:nal_ref_idc. 取00~11,似乎指示这个NALU的重要性,如00的NALU解码器可以丢弃它而不影响图像的回放,0~3,取值越大,表示当前NAL越重要,需要优先受到保护。如果当前NAL是属于参考帧的片,或是序列参数集,或是图像参数集这些重要的单位时,本句法元素必需大于0。Type:标识NAL单元中的RBSP数据类型,其中,nal_un.
2021-09-18 16:30:16
5607
原创 H.264中NALU、RBSP、SODB的关系 (弄清码流结构)
NALU:Coded H.264 data is stored or transmitted as a series ofpackets known asNetworkAbstractionLayerUnits.(NALU单元)RBSP :A NALU contains aRawByteSequencePayload, a sequence ofbytescontainingsyntaxelements.(原始数据字节流)SODB:StringOfDataBits (原...
2021-09-18 14:21:15
389
原创 H264码流中SPS PPS SEI概念及详解
一.VCL和NAL的关系:1.H.264的功能分两层:VCL(Video Codeing Layer):视频编码层,负责的是视频内容的处理,重点在编解码算法;NAL(Network Abstraction Layer):网络抽象层,负责将编码后的数据以网络要求的格式进行打包和传输;2.H.264编码过程中的三种不同数据格式:(1)SODB(String of Data Bits)数据比特串:最原始的编码数据,即VCL数据,没有任何附加数据;(2)RBSP(Raw Byte Sequence
2021-09-16 09:50:45
10913
2
原创 SRT、RTMP、NDI视频传输协议对比
一、SRT和NDI两种低延时传输协议的比较关于SRT:SRT是由Haivision和Wowza共同创建的互联网传输协议,是时下非常受欢迎的开源低延迟视频传输协议。使用SRT传输技术,能够成功实现普通互联网环境下、多地之间、安全可靠的高清视频传输与分发。关于NDI:NDI是NewTek公司于2015年推出的网络设备接口协议,是一种基于局域网络的信号传输协议。使用NDI传输技术,在局域网内的一个设备可以通过一条网线输出或者接收多个NDI信号,可完全取代传统SDI/HDMI视频线传输,它让视频在I
2021-09-14 10:05:08
2664
原创 AAC音频ADTS结构
ADTS全称是(Audio Data Transport Stream),是AAC的一种十分常见的传输格式。ADTS内容及结构一般情况下ADTS的头信息都是7个字节,分为2部分:adts_fixed_header();adts_variable_header();
2021-09-10 16:59:22
299
原创 ffmpeg音频采集、编码
音频采集在windows上获取音频的方法,主要尝试了2种,效果差不多。一种是通过ffmpeg的dshow获取,另一种是直接从windows的Core Audio API 来获取。通过这两种方式采集到的音频的采样率都是当前声音播放的扬声器的采样率。ffmpeg dshow 采集使用dshow抓屏需要安装抓屏软件:screen-capture-recorder。在命令行用dshow:ffmpeg -f dshow -i video="screen-capture-recorder" -f
2021-09-08 17:24:26
1909
原创 qt5.12.8移植
一,qt5.12.8下载wget http://download.qt.io/archive/qt/5.12/5.12.8/single/qt-everywhere-src-5.12.8.tar.xztar xcf qt-everywhere-src-5.12.8.tar.xz二,创建自己的qmake.confcp qt-everywhere-src-5.12.8/qtbase/mkspecs/linux-arm-gnueabi-g++/ qt-everywhere-src-5.12..
2021-08-10 13:58:34
1220
原创 linux中设备文件配置程序udev详解
如果你使用Linux比较长时间了,那你就知道,在对待设备文件这块,Linux改变了几次策略。在Linux早期,设备文件仅仅是是一些带有适当的属性集的普通文件,它由mknod命令创建,文件存放在/dev目录下。后来,采用了devfs, 一个基于内核的动态设备文件系统,他首次出现在2.3.46内核中。Mandrake,Gentoo等Linux分发版本采用了这种方式。devfs创建 的设备文件是动态的。但是devfs有一些严重的限制,从2.6.13版本后移走了。目前取代他的便是文本要提到的udev--一个用户空间
2021-05-11 13:13:32
1118
原创 ffmpeg time_base 理解
ffmpeg time_baseffmpeg存在多个时间基准(time_base),对应不同的阶段(结构体),每个time_base具体的值不一样,ffmpeg提供函数在各个time_base中进行切换。搞清楚各个time_base的来源,对于阅读ffmpeg的代码很重要。一、time_base1、AVStream(libavformat/avformat.h)typedef struct AVStream { /** * This is the fundamental u
2021-04-21 15:46:20
644
2
原创 Filezilla Server 出现Error, could not connect to server解决办法
最近在windows上面设置ftp,今天发现一直连接不上,提示Error, could not connect to server,接下来吾爱编程为大家介绍一下Filezilla Server 出现Error, could not connect to server解决办法,有需要的小伙伴可以参考一下:1、提示内容:Tryingtoreconnectin5secondsConnectingtoserverlocalhost:14147...Error,...
2021-04-12 13:23:21
17782
原创 FLV:适合录制的多媒体格式
虽然苹果拒绝使用 RTMP 协议并推出了自己的 HLS 技术,但大多数用户仍然还是使用 RTMP 协议作为传统直播系统的传输协议。在 Adobe 宣布不再对 RTMP 技术进行支持的情况下,仍然还有这么多用户在使用它,说明 RTMP 协议具有其他协议不可比拟的优势。这里我们做个对比,你就知道 RTMP 协议的优势在哪里了。1.首先,与 HLS 技术相比,RTMP 协议在传输时延上要比 HLS 小得多。主要原因在于 HLS 是基于切片(几秒钟视频的小文件)、然后缓存的技术,这种技术从原理上就比直接
2021-04-08 17:18:15
581
原创 ffmpeg 发布hls流
主要讲述如何利用ffmpeg将输入视频流通过转码的方式转成m3u8文件。如何通过http的方法将切边推送给客户端,不在本文中讲述。输入视频流可以是rtsp流,也可以是http,还可以是文件等等。转码的基本流程如下图所示: 图1. 生产hls视频流视频流解复用可以获得packet,对应的实现方法是av_read_frame。下面给出代码: 1.初始化ffmpegvoid ...
2021-04-08 13:29:17
1007
ElecardStreamEyeTools.zip
2021-09-09
linuxfb_hisi_qt.zip
2021-08-10
sourceinsight 配置文件
2021-03-10
FileZilla_Server.zip
2021-03-08
raw图片bayer.raw
2020-06-11
iptables-1.4.12.tar.ba2.rar
2020-01-16
libmad.aMP3库请用rar解压该包成4个源文件包.rar
2019-10-18
HI3520DV400网络RMII模式修改.docx
2019-09-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人