音视频学习
文章平均质量分 75
hdxbw-wq
这个作者很懒,什么都没留下…
展开
-
Live555 直播性能优化
优化1:同步读取数据源修改为异步读取数据源, FramedSource的子类的doGetNextFrame函数中不要阻塞等待数据源, 在无数据时可以重新增加一个定时器任务,延时再读取数据。在无数据时增加一个等待任务:voidMyFramedSource::doGetNextFrame(){ if(无数据可读){//延时3000微妙(3毫秒)再次读取数据 envir().taskScheduler().scheduleDelayedTask(3000,(TaskFunc*)Dela...原创 2020-11-20 17:40:11 · 2413 阅读 · 0 评论 -
重采样、下采样、上采样三者之间的关系
重采样主要是分为上采样和下采样,在进行采样的过程中,需要注意采样的倍率的问题,并不是可以随意的改变采样率的大小的,根据采样定理:在进行模拟/数字信号的转换过程中,当采样频率大于信号中最高频率的2倍时,采样之后的数字信号完整地保留了原始信号中的信息,一般实际应用中保证采样频率为信号是最高频率的5~10倍。采样定理又称奈奎斯特定理。采样频率:采样频率,也称为采样速度或者采样率,定义了每秒从连续信号中提取并组成离散信号的采样个数,它用赫兹(Hz)来表示。采样频率的倒数是采样周期或者叫作采样时间,它是采样之间.转载 2020-11-19 11:10:03 · 1545 阅读 · 0 评论 -
AAC ADTS格式分析
关于adt里字段的解释有些不全,很可能是因为那些是常量,请参考代码部分(里面可以看出哪些是常量)------------------------------------------------------------------------------------------1.ADTS是个啥ADTS全称是(Audio Data Transport Stream),是AAC的一种十分常见的传输格式。记得第一次做demux的时候,把AAC音频的ES流从FLV封装格式中抽出来送给硬件解码器时,不转载 2020-10-19 14:40:13 · 716 阅读 · 0 评论 -
live555ProxyServer.cpp的学习
live555ProxyServer.cpp在live/proxyServer目录下,这个程序展示了如何利用live555来做一个代理服务器转发rtsp视频(例如,IPCamera的视频)。 首先来看一下main函数 1 int main(int argc, char** argv) 2 { 3 // Increase the maximum size of video frames that we can 'proxy' without truncation. 4 // (Su转载 2020-08-25 10:30:52 · 1343 阅读 · 0 评论 -
ffmpeg学习笔记之创建音频解码器失败 avcodec_open2() 返回值为-22
由于项目需求,需要开发一个私有播放器,所以就无法使用ffmpeg通用的取流接口:avformat_open_input();其中遇上了一个坑在创建音频解码器的时候返回失败;反复对比视频解码器的创建流程,按理说不应出现问题才对。最终,经过多方探索终于找到了问题所在:调用了avcodec_alloc_context3()之后,其中常规创建解码器的流程如下图所示:创建解码器的关键是根据不同 AVCodecID 调用avcodec_find_decoder();...原创 2020-06-24 17:35:29 · 3904 阅读 · 0 评论 -
vlc源码分析(二) 播放流程
当点击播放文件或者输入要播放的文件后,vlc会执行一系列的流程。 首先需要了解视频以及流媒体处理及播放的流程,由链接中的描述,视频以及流媒体处理时,首先要解协议(http,rtmp,rtsp等),然后是解封装(mp4,mkv,avi等),获得音频码流和视频码流,分别解码后,再根据时间戳进行同步。使用vlc点击播放后,就是这一系列的流程。 点击播放支持RTSP协议的摄像头后,vlc会开启...转载 2020-04-10 17:14:53 · 660 阅读 · 0 评论 -
音视频处理之PS封装的介绍与使用
1.PS封装介绍MPEG2-PS是一种多路复用数字音频,视频等的封装容器。PS是Program Stream(程序流或节目流)的简称。程序流将一个或多个分组但有共同的时间基准的基本数据流(PES)合并成一个整体流。它是为可靠稳定的储存媒介如光盘而设计的。一般来说,采用MPEG2-HD格式的高清数码摄像机一般以"MPEG2-PS"来保存文件;而采用AVCHD格式的高清摄像机则通常以".M2...转载 2020-04-09 22:23:33 · 2034 阅读 · 3 评论 -
音频格式转换
前段时间,在学习试用FFmpeg播放音频的时候总是有杂音,网上的很多教程是基于之前版本的FFmpeg的,而新的FFmepg3中audio增加了平面(planar)格式,而SDL播放音频是不支持平面格式的,所以通过FFmpeg解码出来的数据不能直接发送到SDL进行播放,需要进行一个格式转换。通过网上一些资料,也能够正确的播放音频了,但是对具体的音频转换过程不是很了解,这里就对FFmpeg的对音频的存...转载 2020-04-09 17:22:40 · 286 阅读 · 0 评论 -
FFmpeg库视频解码初探(软硬件解码)
ffmpeg最近有工作需求用到ffmpeg,分享下。包括一些编码的基础知识,ffmpeg视频解码基础,还有GPU解码的部分。属于科普工作,并不深入,记录了踩过的一些坑,希望有用饮水思源:雷霄骅(雷神)&代码部分参考自 同事***(打码)代码,谢谢大神!FFmpeg是一种功能强大的常用的视频/音频处理开源框架。支持几乎所有主流格式音视频的编解码,并能进行拼接等操作。基础知...转载 2020-04-02 10:55:01 · 1277 阅读 · 0 评论 -
vlc源码分析(三) 调用live555接收RTSP数据
首先了解RTSP/RTP/RTCP相关概念,尤其是了解RTP协议:RTP与RTCP协议介绍(转载)。 vlc使用模块加载机制调用live555,调用live555的文件是live555.cpp。一、几个重要的类 以下向左箭头(“<-”)为继承关系。1.RTPInterface RTPInterface是RTPSource的成员变量,其成员函数handleRe...转载 2019-12-19 21:04:55 · 448 阅读 · 0 评论 -
【转贴】mp4文件格式解析
目前MP4的概念被炒得很火,也很乱。最开始MP4指的是音频(MP3的升级版),即MPEG-2 AAC标准。随后MP4概念被转移到视频上,对应的是MPEG-4标准。而现在我们流行的叫法,多半是指能播放MPEG-4标准编码格式视频的播放器。但是这篇文章介绍的内容跟上面这些都无关,我们要讨论的是MP4文件封装格式,对应的标准为ISO/IEC 14496-12,即信息技术 视听对象编码的第12部分:ISO...转载 2019-02-18 20:36:13 · 428 阅读 · 0 评论 -
FFmpeg filter简介
1. 引言及示例FFmpeg中的libavfilter提供了一整套的基于filter的机制。filter本身是一个插件的形式,可以快速的组装需要的效果。比如下面的filter,可以实现视频的水平镜像效果。ffplay.exe sample.rmvb -vf hflipFFmpeg为什么重新定义filter API?FFmpeg定义的libavcodec接口已经成为在编解码领域的事实...转载 2018-11-02 11:14:01 · 726 阅读 · 0 评论 -
VLC预览高分辨率视频导致视频花屏分析笔记
根据vlc调试打印,是由于解码过慢导致视频画面过慢显示,程序丢弃画面帧;进而导致画面丢帧。 因为,vlc底层依赖于开源库ffmpeg的音视频的编解码库。所以,可以从ffmpeg方面入手分析。参考:点击我 这位朋友的帖子,有如下的解决办法 根据网上说法,问题应该在于ffmpeg源文件udp.c中,UDP_MAX_PKT_SIZE值设置小,将其增大10倍。修改后重新编...原创 2018-10-10 16:12:34 · 8580 阅读 · 0 评论 -
H264(NAL简介与I帧判断) 扩展H265
原帖地址1、NAL全称Network Abstract Layer, 即网络抽象层。 在H.264/AVC视频编码标准中,整个系统框架被分为了两个层面:视频编码层面(VCL)和网络抽象层面(NAL)。其中,前者负责有效表示视频数据的内容,而后者则负责格式化数据并提供头信息,以保证数据适合各种信道和存储介质上的传输。因此我们平时的每帧数据就是一个NAL单元(SPS与PPS除外)...转载 2018-10-11 09:39:39 · 3978 阅读 · 0 评论