自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(313)
  • 收藏
  • 关注

转载 [FFmpeg] ffmpeg 常用命令

[FFmpeg] ffmpeg 常用命令原文链接1. 视频转换比如一个avi文件,想转为mp4,或者一个mp4想转为ts。ffmpeg -i input.avi output.mp4ffmpeg -i input.mp4 output.ts2. 提取音频ffmpeg -i test.mp4 -acodec copy -vn output.aac上面的命令,默认mp4的audio codec是aac,如果不是,可以都转为最常见的aac。ffmpeg -i test.mp4 -acodec

2022-02-08 21:34:49 790

转载 2021-06-06

原文链接YUV图解 (YUV444, YUV422, YUV420, YV12, NV12, NV21)YUV格式有两大类:planar和packed。对于planar的YUV格式,先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V。对于packed的YUV格式,每个像素点的Y,U,V是连续交*存储的。YUV,分为三个分量,“Y”表示明亮度(Luminance或Luma),也就是灰度值;而“U”和“V” 表示的则是色度(Chrominance或Chroma)..

2021-06-06 23:19:09 495

转载 MJPEG格式和码流分析

参考链接参考链接JFIF是JPEGFileInterchangeFormat的缩写,也即JPEG文件交换格式。JFIF是一个图片文件格式标准,它是一种使用JPEG图像压缩技术存储摄影图像的方法。JFIF代表了一种"通用语言"文件格式,它是专门为方便用户在不同的计算机和应用程序间传输JPEG图像而设计的语言。JFIF文件格式定义了一些内容是JPEG压缩标准未定义的,如resolution/aspectratio,colorspace等。我们可以打开...

2021-04-07 23:09:57 5829 1

转载 linux下,可以定义“变长数组”?

原文链接如题,今天在ubuntu环境下,看到别人的代码:C/C++ code? 1 2 3 4 intlen; getlen(&len);//获得长度 charbuf[len];//定义“变长数组”!! ...

2021-01-18 00:22:57 458

转载 C语言中malloc申请的空间和直接定义变量申请的空间有什么区别?为什么要有malloc这种形式?

作者:大卫德刘链接:https://www.zhihu.com/question/404926433/answer/1318010429来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。定义变量得到的内存,在它被定义的作用域结束之后(一般就是定义语句所在的大括号),就会被释放,而malloc得到内存可以存活到被free的时间例如int *f() { int n = 10; return &n;}int *g() { in.

2021-01-18 00:20:36 2094

转载 Linux 循环创建多个线程 / Linux 线程概念

这里说一下相关的基础知识:线程概念什么是线程LWP:light weight process 轻量级的进程,本质仍是进程(在Linux环境下)进程:独立地址空间,拥有PCB线程:也有PCB,但没有独立的地址空间(共享)区别:在于是否共享地址空间。独居(进程);合租(线程)。Linux下:线程:最小的执行单位 进程:最小分配资源单位,可看成是只有一个线程的进程。Linux内核线程实现原理类U...

2021-01-18 00:18:54 545

转载 Linux 下c获取当前时间(精确到秒和毫秒或者微秒)

获取当前的时间的秒数和微秒数本方法需要用到gettimeofday()函数,该函数需要引入的头文件是 sys/time.h 。函数说明int gettimeofday (struct timeval * tv, struct timezone * tz)1、返回值:该函数成功时返回0,失败时返回-12、参数struct timeval{long tv_sec; //秒long tv_usec; //微秒};struct timezone{int tz_minuteswest; //和

2021-01-18 00:15:04 1570

转载 Word表格单元格中放入图片,如何让图片充满整个单元格

原文链接示例操作步骤如下:1、首先打开duWORD文档,创建好表格2、接着在上方的”插du入“菜单栏中打开”图片“命令。3、插入图片以后,点击表格左上角带四个方向箭头的符号进行选中。4、在开始菜单栏,点击段落栏右边有箭头的符号。5、在弹出的对话框中,将行距设置为最小值,段前、段后、设置值都设置为0。6、再在该单元格中,单击鼠标右键选择”表格性“。7、在弹出的对话框中打开右下方的”选项“。8、小窗口中再将上下左右边距设置为0,并勾选”..

2020-12-01 22:06:12 35179

转载 Nalu_type

原文链接/* 常用Nalu_type: 0x67 (0 11 00111) SPS 非常重要 type = 7 0x68 (0 11 01000) PPS 非常重要 type = 8 0x65 (0 11 00101) IDR 关键帧 非常重要 type = 5 0x61 (0 11 00001) I帧 重要 type = 1 0x41 (0 10 00001) P帧 重要

2020-10-19 00:13:18 505

转载 H264裸流分析(SPS、PPS)

原文链接1 SPS和PPS从何处而来?2 SPS和PPS中的每个参数起什么作用?3 如何解析SDP中包含的H.264的SPS和PPS串?1、 客户端抓包在做客户端视频解码时,一般都会使用Wireshark抓包工具对接收的H264码流进行分析,如下所示:在这里我们可以看到对解码视频起关键作用的SPS和PPS。双击SPS内容如下:双击PPS内容如下:那么从上面的sps中我们知道图像的宽,高。宽=(119+1 )*16=1920高=(67+1)*...

2020-09-13 12:03:10 2301

转载 解析H264的SPS信息

原文链接在做音视频开发的时候,存在不解码视频帧的前提下需要获取视频宽高、帧率等信息,而H.264中的SPS数据可为我们提供这些相关的信息。在此之前,我们需要对一些协议和算法有一定的初步了解,后文中有完整的代码展示。H.264协议我们在此不讲解H.264协议,但是我们需要了解NAL单元语法(NAL unit syntax)、序列参数集数据语法(Sequence parameter set data syntax)、视频可用参数语法(VUI parameters syntax)。具体可去ITU.

2020-09-13 11:54:18 1041 1

转载 H264 NAL_AUD

原文链接rom:http://www.cnblogs.com/yjg2014/p/6144977.htmlAUD 一般文档没有对AUD进行描叙,其实这是一个帧开始的标志,字节顺序为:00 00 00 01 09 f0从结构上看,有start code, 所以确实是一个NALU,类型09在H264定义里就是AUD(分割器)。大部分播放器可以在没有AUD的情况下正常播放。 紧随AUD,一般是SPS/PPS/SEI/IDR的组合或者简单就是一个SLICE,...

2020-09-13 11:45:00 211

转载 对于CRITICAL_SECTION用法的介绍和理解

转载来源http://blog.sina.com.cn/s/blog_7953cead0100osnt.html 很多人对CRITICAL_SECTION的理解是错误的,认为CRITICAL_SECTION是锁定了资源,其实,CRITICAL_SECTION是不能够“锁定”资源的,它能够完成的功能,是同步不同线程的代码段。简单说,当一个线程执行了EnterCritialSection之后,cs里面的信息便被修改,以指明哪一个线程占用了它。而此时,并没有任何资源被“锁定”。不管什么资源,其它线...

2020-09-13 11:29:20 725

转载 C语言中的__FILE__、__LINE__和__func__等预定义跟踪调试

标准C语言预处理要求定义某些对象宏,每个预定义宏的名称一两个下划线字符开头和结尾,这些预定义宏不能被取消定义(#undef)或由编程人员重新定义。下面预定义宏表,被我抄了下来。__LINE__ :当前程序行的行号,表示为十进制整型常量 __FILE__ :当前源文件名,表示字符串型常量 __DATE__ :转换的日历日期,表示为Mmm dd yyyy 形式的字符串常量,Mmm是由asctime产生的。 __TIME__ :转换的时间,表示"hh:mm:ss"形式的字符串型常量,是有ascti...

2020-09-13 11:20:16 199

转载 C语言函数参数的传值和传指针有什么区别?

原文链接前言函数传参有三种传参方式:传值、传址、传引用。我们可能听过C语言中的传值和传指针,在其他语言中,也有传引用一说,那么他们到底有什么区别呢?如果你还不能准确地分辨,就该好好了解一下了。传值我们在初学C语言的时候就被老师教过,下面的方式是无法交换a和b的值的:#include<stdio.h>voidswap(inta,intb){inttemp=a;a=b;b=temp;pri...

2020-09-10 23:39:32 1179 1

转载 入门理解H264编码

原文链接最近入门音视频技术,一直在学习H264编解码标准,了解了不少关于H264的相关知识,对于网上各种类型的资料,始终没有找到一篇适合的知识梳理资料。可能是查找方式不对,所以花费了比较多的时间。经过一段时间的熟悉后结合网上各类大神的指导资料和自己的理解决定自己整理一下关于H264编解码标准的知识。以后方便自己查阅,也让更多刚入门的人提供一个参考资料,由于是初次涉及,所以有些地方可能有理解不全面或有误,望各位前辈大神多多指导,不胜感激; 主要的参考资料在已贴在后面,大家可以详细...

2020-09-08 00:22:21 290

转载 H264码流中NALU sps pps IDR帧的理解

原文链接H264码流中NALU sps pps IDR帧的理解##1、概念 什么是NALU? H264码流可以分为两层,VCL层和NAL层,NAL的全称是Network abstraction layer,叫网络抽象层,它保存了H264相关的参数信息和图像信息,NAL层由多个单元NALU组成,NALU由了NALU头(00 00 00 01或者00 00 01)、sps(序列参数集)、pps(图像参数集合)、slice、sei、IDR帧、I帧(在图像运动变化较少时,I帧后面是7个P帧,如果图像

2020-09-08 00:10:27 2189

转载 h264 三种封包方式

原文链接网络抽象层单元类型 (NALU):NALU头由一个字节组成,它的语法如下:、F: 1个比特.forbidden_zero_bit. 在 H.264 规范中规定了这一位必须为 0.NRI: 2个比特.nal_ref_idc. 取00~11,似乎指示这个NALU的重要性,如00的NALU解码器可以丢弃它而不影响图像的回放.Type: 5个比特.nal_unit_type. 这个NALU单元的类型.简述如下:0没有定义1-23N...

2020-09-08 00:03:23 580

转载 RTP协议解析和H264码流提取

原文链接一、 h264基础概念SODB: 数据比特串-->最原始的编码数据RBSP: 原始字节序列载荷-->在SODB的后面填加了结尾比特(RBSP trailing bits 一个bit“1”)若干比特“0”,以便字节对齐。EBSP: 扩展字节序列载荷– >在RBSP基础上填加了仿校验字节(0X03)它的原因是: 在NALU加到Annexb上时,需要填加每组NALU之前的开始码 StartCodePrefix,如果该NALU对应的slice为一帧的开始则用4位字节表示,ox00.

2020-09-07 23:59:54 447

转载 NALU解包

RTP荷载H264码流荷载格式定义三个不同的基本荷载结构,接收者可以通过RTP荷载的第一个字节后5位识别荷载结构。FU Indicator&FU header1) 单个NAL单元包:荷载中只包含一个NAL单元。NAL头类型域等于原始NAL单元类型,即在范围1到23之间2) 聚合包:本类型用于聚合多个NAL单元到单个RTP荷载中。本包有四种版本,单时间聚合包类型A(STAP-A),单时间聚合包类型B(STAP-B),多时间聚合包类型(MTAP)16位位移(MTAP16), ...

2020-09-07 23:48:00 407

转载 H264 编解码协议详解

1.、什么是 H264?H264 是 MPEG-4 标准所定义的最新编码格式,同时也是技术含量最高、代表最新技术水平的视频编码格式之一,标准写法应该是H.264H264 视频格式是经过有损压缩的,但在技术上尽可能做的降低存储体积下获得较好图像质量和低带宽图像快速传输。2、一些相关名词解释下图为 H264 码流分层图2.1、VCL & NALH264 原始码流是由一个接一个 NALU(NAL Unit) 组成,它的功能分为两层,VCL(Video Coding Lay.

2020-09-07 00:24:52 495

转载 RTP协议全解析(H264码流和PS流)

写在前面:RTP的解析,网上找了很多资料,但是都不全,所以我力图整理出一个比较全面的解析,其中借鉴了很多文章,我都列在了文章最后,在此表示感谢。互联网的发展离不开大家的无私奉献,我决定从我做起,希望大家支持。原创不易,转载请附上链接,谢谢http://blog.csdn.net/chen495810242/article/details/392073051、RTP Header解析 ...

2020-09-03 22:56:02 977

转载 H264 编解码协议详解

原文链接1.、什么是 H264?H264 是 MPEG-4 标准所定义的最新编码格式,同时也是技术含量最高、代表最新技术水平的视频编码格式之一,标准写法应该是H.264H264 视频格式是经过有损压缩的,但在技术上尽可能做的降低存储体积下获得较好图像质量和低带宽图像快速传输。2、一些相关名词解释下图为 H264 码流分层图2.1、VCL & NALH264 原始码流是由一个接一个 NALU(NAL Unit) 组成,它的功能分为两层,VCL(Video Codi.

2020-09-03 00:42:07 744

转载 C语言指针强制类型转换

原文链接概要:C语言中,任何一个变量都必须占有一个地址,而这个地址空间内的0-1代码就是这个变量的值。不同的数据类型占有的空间大小不一,但是他们都必须有个地址,而这个地址就是硬件访问的依据,而名字只是提供给程序员的一种记住这个地址的方便一点的方法。但是,不同的变量在机器中都是0-1代码,所以,我们不能简单的通过检查一个值的位来判断它的类型。例如,定义如下:int a;float b;double c;long double d;(假设它们所占的字节分别是4、8、8、10,..

2020-09-02 22:27:57 3606

转载 宏中使用 return 和逗号表达式

原文链接最近在移植一个开源代码, 调试时发现怎么都跟预期的结果不一样, 函数未执行完就退出了, 困扰了我好几天, 今天偶然间看到宏定义的内容, 然后才发现是在宏中执行了退出, 原来, 宏还可以这么用, 今天就分享出来, 避免大家今后踩坑.1. 示例代码#include <stdio.h>#define TRUE 1#define FALSE 0#define ERROR_MSG(msg) return printf("%s", msg), 0int main(){ p

2020-09-02 22:24:29 936

原创 Source Insight 3.5创建工程简介

Source Insight 3.5创建工程简介参考链接

2020-09-01 23:35:43 165

转载 深度理解do{} while(0)语句的作用

原文链接深度理解do{} while(0)在linux内核中常常会看到do{} while(0)这样的语句,有人疑惑,认为无意义,因为他只执行一次,加不加do{} while(0)小过失完全一样的,那你就错了,没有完全了解do{} while(0)。下面看一个例子:定义一个宏:#define SAFE_FREE(p) do{free(p); p=NULL} while(0)假设这里去掉do{....} while(0),及定义为:#define SAFE_FREE(p...

2020-09-01 23:33:26 170

转载 bool(*pn)(int x,int y))是什么意思

原文链接pn是一个函数指针,指向一个函数这是函数指针。函数指针pn 指向一个du 返回值为bool类型,参zhi数为int x,int y的函数。例如 bool IsMax(int a,int b){return a>b;}void main(){bool (*pn)(int x,int y);pn = IsMax;int a =5,b=3;count<<pn(5,3)<<endl;}//输出daoTrue...

2020-09-01 22:11:26 598

转载 理解YUV

原文链接先贴一个好贴:https://www.cnblogs.com/ALittleDust/p/5935983.htmlYUVYUV是一种颜色空间,基于YUV的颜色编码是流媒体的常用编码方式。Y表示流明,U、V表示色度、浓度,这种表达方式起初是为了彩色电视与黑白电视之间的信号兼容。 对于图像每一点,Y确定其亮度,UV确认其彩度。Y’CbCr也称为YUV,是YUV的压缩版本,不同之处在于Y’CbCr用于数字图像领域,YUV用于模拟信号领域,MPEG、DVD、摄像机中常说的YUV其实是Y’CbC

2020-08-31 23:50:49 245

转载 RTP 上封装H264 数据包

原文链接:https://www.cnblogs.com/Jade2009/p/5654650.html1. 引言 随着信息产业的发展,人们对信息资源的要求已经逐渐由文字和图片过渡到音频和视频,并越来越强调获取资源的实时性和互动性。但人们又面临着另外一种不可避免的尴尬,就是在网络上看到生动清晰的媒体演示的同时,不得不为等待传输文件而花费大量时间。为了解决这个矛盾,一种新的媒体技术应运而生,这就是流媒体技术。流媒体由于具有启动时延小、节省客户端存储空间等优势,逐渐成为人们的首选,流媒体网...

2020-08-31 23:33:09 211

原创 excel快速筛选内容

EXCEL表格快速筛选选中第二行表头Crtl + shift + L该行单元格右下角出现小箭头,点击即可筛选

2020-08-30 19:26:31 393

转载 视频编解码基础概念

原文1. 概述音视频领域早期采用模拟化技术,目前已发展为数字化技术。数字化的主要好处有:可靠性高、能够消除传输及存储损耗,便于计算机处理及网络传输等。数字化后,音视频处理就进入了计算机技术领域,音视频处理本质上就是对计算机数据的处理。图像信息经采集后生成的原始视频数据,数据量非常大,对于某些采集后直接本地播放的应用场合,不需要考虑压缩技术。但现实中更多的应用场合,涉及视频的传输与存储,传输网络与存储设备无法容忍原始视频数据的巨大数据量,必须将原始视频数据经过编码压缩后,再进行传输与存储。本文

2020-08-03 23:10:51 186

转载 I帧、P帧、B帧,以及PTS、DTS的关系

原文在MPEG编码的过程中,部分视频帧序列压缩成为I帧,部分压缩成P帧,还有部分压缩成B帧。I帧法是帧内压缩法,也称为“关键帧”压缩法。I帧法是基本离散余弦变换 DCT( Discrete Cosine Transform )的压缩技术,这种算法与JPEG压缩算法类似。JPEG压缩是一种针对静止的连续色调的图像压缩方法,它属于帖内压缩。采用I帧压缩可达到1/6的压缩比而无明显的压缩痕迹。MPEG标准采用YCbCr(YUV)4::2:2的采样格式,其含义为:每个点保存一个 8bit 的亮度值(也就

2020-08-03 22:29:37 606

转载 opencv像素整体取反

cv::Mat pimg;pimg = ~pimg;

2020-06-23 11:34:17 346

转载 word中设置论文参考文献完美对齐方法

1. 把准备好的参考文献粘贴到记事本中,在标号和正文之间添加一个制表符/tab键如下图所示:2.把第一步处理好的参考文献粘贴到word中进行如下设置: 开始=》段落=》常规=》对齐方式:两端对齐; 缩进=》特殊格式:悬挂缩进为2个字符3.调整后的参考文件就完美对齐了,如下图所示:...

2020-06-19 06:13:40 9471

原创 TX2使用shell脚本启动ros, roslaunch以及编译好的路径规划的可执行文件

1.启动ROS文件为:aotuload.sh#! /bin/bash source /opt/ros/kinetic/setup.bash roscore 2.启动ZED相机的roslaunch文件文件为:aotuload1.sh#! /bin/bash sleep 15source /home/nvidia/catkin_ws/devel/setup.bashroslaunch zed_wrapper zed.launch3.启动障碍物识别+路径规划的可执行文件

2020-06-05 14:11:59 1231

转载 shell脚本运行后,让终端不再自动关闭

参考链接只需要在shell文件末尾加上如下命令即可exec /bin/bash

2020-06-05 13:40:12 9931

转载 TX2 开机自动启动程序

原文链接#! /bin/bash source /opt/ros/kinetic/setup.bash roscore 打开终端,在终端中执行gnome-session-properties,会弹出一个“启动应用程序首选项”的菜单 点击添加命令的地方输入gnome-terminal -x/home/jobs/mecAGV/autoLoad.sh红色的为路径如果想要后台运行则换成bash/home/jobs/mecAGV/autoLoad.sh...

2020-06-04 11:41:47 1138

转载 opencv改变imshow窗口大小,窗口位置的方法

原文链接cv2.namedWindow("enhanced",0);cv2.resizeWindow("enhanced", 640, 480);cv2.imshow("enhanced",lines)cv2.waitKey(0)创建窗口时候改变下参数就可以鼠标随意拖动窗口改变大小啦cv::namedWindow("camera", CV_WINDOW_NORMAL);//CV_WINDOW_NORMAL就是0cv::imshow("camera", frame);cv2.n.

2020-06-02 16:19:02 6560

转载 ROS path问题解决方案

1.问题描述1.1. 在Roboware里面直接右键运行launch文件会出现如下错误ResourceNotFound: hector_gazebo_worldsROS path [0]=/opt/ros/kinetic/share/rosROS path [1]=/opt/ros/kinetic/share1.2. 在命令框中输入source devel/setup.bash后,再使用roslaunch命令运行launch文件可以正常运行1.3. 每次运行自己编写的ROS包都需要先运

2020-06-02 16:08:39 4324

空空如也

空空如也

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

TA关注的人

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