heibao111728
一定要拥有一家自己的公司
展开
-
支持硬件加速的ffmpeg编译
为了降低cpu的使用率提升系统的接入能力,需要将编解码模块移至GPU处理,ffmpeg默认的发行版中不支持GPU加速,所以需要重新编译ffmpeg使其支持GPU硬件加速。原创 2023-06-19 11:28:14 · 1387 阅读 · 0 评论 -
osip开源库在windows平台上编译
之前写过一篇关于sip协议栈选型的文章,最终采用了2.3.6版本,文章中说明了为什么采用osip协议栈,以及为什么采用2.3.6版本。现在Linux上的产品已经基本满足需求了,接下来我们打算开发一套客户端和服务端对接,考虑到windows与Linux使用同一套源码,减低维护成本,所以在windows下我们依旧选择2.3.6版本,在编译的时候遇到一些坑,在此记录一下,方便自己和道友后续参考。我使用的编译硬件环境是windows10 + vs2017。原创 2023-06-25 11:21:21 · 312 阅读 · 0 评论 -
视频监控平台客户端开发记录
所用到的核心技术。原创 2023-09-28 15:21:31 · 147 阅读 · 0 评论 -
基于OSip协议栈的GB28181视频平台--sip协议栈选型
基于OSip协议栈的GB28181视频平台--sip协议栈选型原创 2023-03-27 10:52:49 · 467 阅读 · 1 评论 -
新版本Wireshark导出视频流
wireshark旧版本可以导出负载,但是升级新版本后没有对应的导出按钮,所以很多人不知道该如何导出视频流,以至于单单为了导出视频这一功能很多人依旧使用旧版本。今天给大家分享一下我是如何新版本中导出视频流的。原创 2023-01-29 17:25:21 · 2252 阅读 · 1 评论 -
ffmpeg AVFrame保存至内存
AVFrame保存至内存原创 2022-07-13 15:21:56 · 1235 阅读 · 0 评论 -
ffmpeg使用之硬件加速(命令行方式)
1、查看当前ffmpeg支持的硬件加速方式;ffmpeg -hwaccels2、查看当前ffmpeg支持的硬件解码器ffmpeg -decoders | grep Nvidia3、查看当前ffmpeg 支持的硬件编码器ffmpeg -encoders | grep Nvidia4、硬解码使用命令ffmpeg -hwaccel cuda -i rtsp://admin:Sf%[email protected]/Streaming/Channels/1 -c:v原创 2022-05-24 09:09:13 · 2426 阅读 · 0 评论 -
SDL2之SDL_OpenAudioDevice无法播放声音
最近在自己抽时间做一个通用的视频监控客户端,通过rtsp协议获取媒体流然后解码渲染,在这个过程中发现音频流比视频流慢大概4~5秒,初步怀疑是音频播放模块引发的。旧的音频播放使用SDL_OpenAudio、SDL_PauseAudio加回调实现,因为回调中何时读取音频数据不由我的程序控制,怀疑问题出现在这里,查看SDL2相关资料后发现有新的音频播放接口代替SDL_OpenAudio,即SDL_OpenAudioDevice,但是使用过程中发现,切换为SDL_OpenAudioDevice播放音频时一直没有原创 2021-07-22 22:54:20 · 1655 阅读 · 1 评论 -
音视频打包格式之 “planar“ and “packed“
我们经常回看到视频格式后缀会有包含 "planar" 或 "packed"。这两者有什么区别呢?今天我们来谈一谈。其实很简单,以YUV数据来举例,对于YUV数据如果是packed形式的,我们就可以知道视频数据中YUV数据是将YUV打包在一起(YUV数据交错)放置的,比如“YYYYUUYYYYVVYYYYUUYYYYVVYYYYUUYYYYVV......”。如果是planar形式的,那么我们就可以知道视频数据中YUV是分区域(平面)放置的,比如“YYYYYYYYYYYYYYYYUUUUUUVVV原创 2020-08-02 15:37:22 · 514 阅读 · 0 评论 -
视频编码零基础入门
如今我们所处的时代,是移动互联网时代,也可以说是视频时代。从快播到抖音,从“三生三世”到“延禧攻略”,我们的生活,被越来越多的视频元素所影响。而这一切,离不开视频拍摄技术的不断升级,还有视频制作产业的日益强大。此外,也离不开通信技术的飞速进步。试想一下,如果还是当年的56K Modem拨号,或者是2G手机,你还能享受到现在动辄1080P甚至4K的视频体验吗?除了视频...转载 2019-11-13 09:06:25 · 333 阅读 · 0 评论 -
SMPTE与NTP
首先查看rfc2326的定义:翻译:SMPTE相对时间戳一个SMPTE相对表达相对于视频切片的开始时间的时间戳,相对时间戳表示为SMPTE时码帧级访问精度,时码的格式为:时:分:秒:帧:子帧,以视频切片开始时间作为源。默认的smpte 格式是 "SMPTE 30 drop" 格式,意思是帧率为29.97帧每秒。也支持其他的SMPTE码如("SMPTE 25"),因为"帧"域的取...原创 2019-03-05 17:24:04 · 1783 阅读 · 1 评论 -
理解音视频 PTS 和 DTS
视频视频的播放过程可以简单理解为一帧一帧的画面按照时间顺序呈现出来的过程,就像在一个本子的每一页画上画,然后快速翻动的感觉。但是在实际应用中,并不是每一帧都是完整的画面,因为如果每一帧画面都是完整的图片,那么一个视频的体积就会很大,这样对于网络传输或者视频数据存储来说成本太高,所以通常会对视频流中的一部分画面进行压缩(编码)处理。由于压缩处理的方式不同,视频中的画面帧就分为了不同的类别...转载 2018-10-24 10:19:48 · 174 阅读 · 0 评论 -
色彩模式yuv420p与RGB24转换
最近接手公司的新任务:实现yuv420与RGB24色彩之间的相互转换,网上有很多现成代码,但是不知道怎么验证其准确性,后来从网上找到了yuv格式的播放神器:YUV Player Deluxe,下载地址为"http://www.yuvplayer.com/", 显示效果如下:yuv播放器找到了,但是怎么制造一张内容为yuv格式的图片呢?答案是使用神器ffmpeg,下载ffmpeg工具,执行:...原创 2018-09-18 17:49:12 · 4626 阅读 · 0 评论 -
多媒体编程之rtp负载类型处理
在做sip、GB28181或者其他网络视频的业友们肯定会遇到这样的问题:rtp负载中的媒体数据会有多种类型,如负载为音视频数据PS包、音视频基本流包、MPEG-4视频流包、H.264视频流包、SVAC视频流包、音频流包(见GB28181-2001,附录C)等。我们该怎么得知负载为哪种封包格式,知道了具体的封包格式后又该如何解析为可以使用播放器播放的媒体数据?今天我们就一起来聊一聊这个话题,鉴于经验...原创 2018-05-09 10:20:29 · 591 阅读 · 0 评论 -
色度抽样(4:2:0)到底怎么理解?
之前看了好多资料,国内的国外的。对于色度抽样4:2:0介绍的都差不多,老感觉还有哪些细节问题没有介绍清楚,通过不断的摸索翻阅资料算是彻底弄清楚了,相信我能以很简短的方式告诉同样被该问题困惑的你。如:我们打算采取如图1所示的16个像素点信息(每个数字代表一个像素点)。如果以RGB24方式存储,我们知道每个像素点需要用3个字节来存储,如图3所示:图3展示了我们在内存中对图1所示的像...原创 2018-05-10 18:02:29 · 6221 阅读 · 0 评论 -
PS、TS分装的目地
根据ISO/IEC 13818-1: 2000官方文档介绍PS流是为了存储方便而设计,长度不固定TS流为为了传输方便而设计,长度固定(Transport Stream packets are 188 bytes in length)。其实为什么设计PS、TS流还有一个更重要的就是ES流只是一种类型的媒体信息,而PS、TS可以同时包含视频媒体信息和音频媒体信息,方便做音视频同步。PS、T...原创 2018-05-11 09:23:04 · 458 阅读 · 0 评论 -
Windows下编译live555
live555是一套完整的rtsp解决方案,有些情况我们需要在windows环境下使用,但是很遗憾从官网上下载下来的源码包只可以在linux系统下编译,官网上其实也提供了在windows下编译的方法,但是比较隐晦并且不一定可以成功,如果你是大牛(想挑战一下,可以按照官网的教程自己编译一遍)那么本教程对你没有什么用,如果你是小白,或者你是大牛但是不想花费心思精力去编译,那么本教程将将会给你带来意外的...原创 2018-05-12 10:56:35 · 1317 阅读 · 0 评论 -
PES、PS、TS详解
有关于PES、PS、TS的介绍网上有不少教程,但是很多都是重复的,最可怕的是对于同一个知识点的介绍可能存在多篇介绍文档 中解释不一样的情况,而对于初学者就很难判断具体哪种才是权威的、准确的说法。为了解决这个问题,本篇博文从官方文档中摘取核心定义供读者学习,当然如果你对自己的英文很自信,可以直接参阅官方文档——《ISOIEC 13818-1.pdf》根据《ISOIEC 13818-1.pdf》文...原创 2018-05-14 14:43:33 · 8891 阅读 · 4 评论 -
wireshark抓取udp包不能抓取rtp包的完美解决方案
wireshark是网络抓包神器,他的功能和作用,想必不用费口舌给大家介绍了,我估计很多人在最初使用wireshark抓取rtp包分析的时候,会遇到这样的问题:如果运气好能抓到rtp包,如果运气不好就抓不到rtp只能抓到udp包,要抓到rtp包只能重启wireshark等待运气的降临,今天给大家介绍一个小技巧让大家能够掌握主动权,不用等待运气的降临,可以随时抓取rtp包。图1如图1所示,有的时候我...原创 2018-05-22 12:10:28 · 8644 阅读 · 2 评论 -
wireshark抓取h264包
从网络上看到别人能使用wireshark工具抓取h264视频包,这对于分析h264视频流来说有极大的帮助,但是我用自己的电脑起初是怎么也抓不到h264的视频包,结果如图1所示:图1怎么回事?别人的电脑能抓到?为什么我的电脑就不可以?其实不是电脑的原因,是别人比我多做了一些设置,首先确保你的wireshark能够抓到rtp包,如果抓不到,参见博文《https://blog.csdn.net/heib...原创 2018-05-22 14:17:36 · 2191 阅读 · 0 评论 -
h264之SPS、PPS
PPS():SPS(Sequence Parameter Set):保存视频的分辨率等信息;图1如图1,所示,我们可以通过SPS帧中获取视频图像的分辨率信息:(79+1)*16 = 1280(44+1)*16 = 720可以看出我们的视频图像分辨率为1280*720(为什么要先加1,然后乘以16?请高手在评论中赐教),与VLC中获取到的视频分辨率信息相同,(图2中是通过VLC播放器获取的视频分辨率...原创 2018-05-22 14:58:29 · 1478 阅读 · 3 评论 -
视频压缩编码
1.视频编码基本原理(1) 视频信号的冗余信息以记录数字视频的YUV分量格式为例,YUV分别代表亮度与两个色差信号。例如对于现有的PAL制电视系统,其亮度信号采样频率为13.5MHz;色度信号的频带通常为亮度信号的一半或更少,为6.75MHz或3.375MHz。以4:2:2的采样频率为例,Y信号采用13.5MHz,色度信号U和V采用6.75MHz采样,采样信号以8bit量化,则可以计算出...原创 2018-04-11 09:43:36 · 1012 阅读 · 0 评论