音视频开发笔记
音视频开发笔记
ByteFlys
这个作者很懒,什么都没留下…
展开
-
【FFMPEG】AVFilter使用流程
为了实现⼀个滤波过程,可能会需要多个滤波器协同完成,即⼀个滤波器的输出可能会是另⼀个滤波器的输⼊,AVFilterLink的作⽤是串联两个相邻的滤波器实例,形成两个滤波器之间的通道。AVFilterPad 滤波器的输⼊输出端⼝,⼀个滤波器可以有多个输⼊以及多个输出端⼝,相邻滤波器之间是通过AVFilterLink来串联的,⽽位于AVFilterLink两端的分别就是前⼀个滤波器的输出端⼝以及后⼀个滤波器的输⼊端⼝。AVFilterGraph ⽤于统合这整个滤波过程的结构体。原创 2023-07-06 11:32:19 · 878 阅读 · 0 评论 -
【流媒体协议】RTMP和RTSP的区别
RTMP和RTSP都是常用的流媒体协议,支持推流和拉流。但是它们的特点不同,应用场景也不同。原创 2023-04-13 10:12:59 · 2173 阅读 · 1 评论 -
【FFMPEG】封装格式转换流程和核心代码
【代码】【FFMPEG】封装格式转换流程和核心代码。原创 2023-04-11 10:25:55 · 344 阅读 · 0 评论 -
【FFMPEG】av_samples_alloc_array_and_samples函数解析
linesize,输出参数,单帧数据最大的字节数,linesize=通道数×每个通道的样本数×采样深度。该函数用于开辟一块内存,用于存储单帧的音频数据,参数作用主要如下。audio_data,输出参数,分配的内存空间。nb_samples,每帧样本数。nb_channels,通道数。sample_fmt,样本格式。align,字节对齐,填0即可。原创 2023-01-07 18:03:16 · 982 阅读 · 0 评论 -
【FFMPEG】AVERROR(EAGAIN)含义
继续调用avcodec_send_packet发送数据,直到解码数据足够为止。而是代表解码数据不足,需要提供更多的AVPacket才能解码出数据。这是一个常见的错误码,它实际上并不是真的报错。原创 2022-12-21 14:33:15 · 1691 阅读 · 0 评论 -
【C++】Dll的Release版本和Debug版本不能混用
std::string和std::vector,在release和debug下的实现方式是不同的,内存使用情况也不一致。在Release模式下,程序可以正常运行,在Debug模式下,程序报内存错误,可能会出现以下两种错误。如果debug版本的exe,使用了release版本的dll,则有可能导致内存错误。因此,如果dll使用了std库,则必须保证dll和exe是使用相同规则编译出来的。C语言确实有很多比较麻烦的地方,大家只能靠经验去解决。原创 2022-11-27 10:34:40 · 1935 阅读 · 0 评论 -
【FFMPEG】从视频文件中抽取h264数据写成文件
这篇博客主要记录的是。原创 2022-11-24 12:49:20 · 1507 阅读 · 0 评论 -
【FFMPEG】从视频文件中抽取aac数据写成文件
这篇博客主要记录的是。原创 2022-11-22 06:57:35 · 518 阅读 · 0 评论 -
【FFMPEG】从文件中读取AVPacket
这篇博客主要记录的是。原创 2022-11-21 06:23:20 · 494 阅读 · 0 评论 -
【QT】QT使用lib或dll库时,运行提示exited with code -1073741515
如果想要知道缺少哪些dll文件,也可以直接点击exe文件运行,会提示缺少哪个dll。需要将用到的dll文件,拷贝到编译目录下的exe文件旁边即可。这种情况,一般是缺少运行时所需要的dll文件导致的。原创 2022-11-11 09:20:51 · 1369 阅读 · 0 评论 -
【FFMPEG】Windows下将ffmpeg编译成lib和dll完整教程
打开msys2/home/ffmpeg-4.3.5/bin-64/bin目录,可以看到编译成功的dll和lib文件。手动创建msys2/usr/local/include/AMF目录,再打开msys2.exe,执行以下指令。dll是动态库,在运行时使用,dll中的代码不参与编译,而是运行期间,到对应的dll文件当中去查找函数。这种情况下,lib文件不存储代码,只存储dll文件中函数的调用地址,因此体积比较小,代码存于dll当中。wget下载的文件,会被保存到msys2/home/用户名下,再手动解压即可。原创 2022-11-10 15:19:35 · 3637 阅读 · 0 评论 -
【音视频开发笔记】SDL播放PCM文件
【代码】【音视频开发笔记】SDL播放PCM文件。原创 2022-11-02 08:58:36 · 211 阅读 · 0 评论 -
【FFMPEG】通过错误码反推错误原因
这里在顺便列举一下常见的错误码对应的整型值,能百度到就没必要自己手动去转换了。一般0表示成功,如果失败的话,一般是返回一个负数,比如-541478725。调用ffmpeg的api时,一般会返回一个整型值,表示成功或失败。除此之外,还有一个正规方法,可以反推错误码代表的具体含义。对于一些常见的错误,我们可以通过百度去搜到它的具体含义。那么,我们如何知道这个负值代表什么含义了。原创 2022-10-30 09:33:03 · 2286 阅读 · 0 评论 -
【FFMPEG】H264码流的两种组织方式:AnnexB和AVCC
它允许在转码前,从AVCC格式输入流中读取SPS和PPS,然后写到AnnexB格式的输出流当中。标准名称是MPEG-2 Tansport Stream Format,适合网络传输。标准名称是MPEG-4 Byte Stream Format,适合文件存储。H264码流分两种组织方式,一种是AnnexB格式,一种是AVCC格式。SPS和PPS存在一个特定类型的NALU当中,一般是首个NALU。又叫AVC1格式,FLV、MP4、MKV文件用的都是这种格式。具体用法可以自己百度研究下。原创 2022-10-16 22:33:53 · 1539 阅读 · 0 评论 -
【FFMPEG】音频转码时-f -sample_fmt -codec:a区别
ffmpeg进行音频提取或转码有多种命令可以实现。原创 2022-10-16 12:12:50 · 607 阅读 · 0 评论