音视频
文章平均质量分 59
weixin_45673259
这个作者很懒,什么都没留下…
展开
-
音视频过滤器实战--音频混音
【代码】音视频过滤器实战--音频混音。原创 2024-03-31 21:39:14 · 397 阅读 · 0 评论 -
音视频过滤器实战---视频处理
【代码】音视频过滤器实战---视频处理。原创 2024-03-31 11:46:50 · 564 阅读 · 0 评论 -
音视频基础 (九)---FFmpeg过滤器框架
AVFilterGraph是FFmpeg中用于管理音视频滤镜的数据结构。它表示一个完整的滤镜图,可以包含多个输入输出,并通过连接不同的滤镜节点来实现各种音视频处理操作。AVFilterGraph提供了创建、配置和管理滤镜的接口,允许用户构建复杂的滤镜拓扑结构,以实现音视频的处理和编辑。通AVFilterGraph,用户可以添加各种滤镜(如变换、剪切、合并、调节等)并将它们连接起来,最终实现所需的音视频处理效果。原创 2024-03-31 09:46:46 · 1389 阅读 · 0 评论 -
音视频实战--音视频编码
例如:AAC文件,则先写好其adts头部数据再存储音频数据帧。原创 2024-03-19 22:06:43 · 593 阅读 · 0 评论 -
音视频实战---音频重采样
【代码】音视频实战---音频重采样。原创 2024-03-18 22:55:22 · 535 阅读 · 0 评论 -
音视频实战--自定义输入输出IO
自定义输出函数例子av_write_frame av_interleaved_write_frame函数详解。原创 2024-03-17 22:16:07 · 516 阅读 · 0 评论 -
音视频实战--解析MP4文件例子
【代码】音视频实战--解析MP4文件例子。原创 2024-03-17 21:46:25 · 350 阅读 · 0 评论 -
音视频实战---音视频解码
1、使用avcodec_find_decoder查找解码器2、 使用av_parser_init获取裸流解析器和方法3、使用avcodec_alloc_context3分配编解码器上下文4、使用avcodec_open2将解码器和解码器上下文进行关联5、使用fopen打开输入、输出文件6、使用fread读取文件7、使用av_frame_alloc分配存储解码数据结构体,以接收解码数据8、使用av_parser_parse2解析数据包获取到编码后的音视频帧,将获取到的音视频帧使用avcodec_原创 2024-03-14 22:58:50 · 609 阅读 · 0 评论 -
音视频实战---从音视频文件中提取h264裸流
1、使用avformat_alloc_context分配解复用器上下文内存2、使用avformat_open_input打开音视频文件或网络流3、使用avformat_find_stream_info获取码流信息4、使用 av_find_best_stream获取视频流下标5、分配编码数据av_packet_alloc内存空间6、使用av_init_packet初始化编码数据帧结构7、使用av_bsf_get_by_name函数根据名字获取相应的比特流过滤器8、 初始化过滤器上下文av_bsf原创 2024-03-14 22:38:59 · 643 阅读 · 0 评论 -
音视频实战---读取音视频文件的AAC音频保存成aac文件
【代码】音视频实战---读取音视频文件的AAC音频保存成aac文件。原创 2024-03-14 22:15:24 · 659 阅读 · 0 评论 -
音视频编码实战--读取音视频文件
使用函数打开音视频文件,获取该文件构成和基本信息的结构体。AVFormatContext是描述一个媒体文件或媒体流的构成和基本信息的结构体。原创 2024-03-10 15:58:10 · 394 阅读 · 0 评论 -
音视频基础(八)---H264 NALU分析
H.264从1999年开始,到2003年形成草案,最后在2007年定稿有待核实。在ITU的标准⾥称为H.264,在MPEG的标准⾥是MPEG-4的⼀个组成部分–MPEG-4 Part 10,⼜叫Advanced Video Codec,因此常常称为MPEG-4 AVC或直接叫AVC。原创 2024-02-19 00:34:19 · 881 阅读 · 0 评论 -
音视频基础(七)---FLV
FLV(Flash Video)是Adobe公司推出的⼀种流媒体格式,由于其封装后的⾳视频⽂件体积⼩、封装简单等特点,⾮常适合于互联⽹上使⽤。⽬前主流的视频⽹站基本都⽀持FLV。采⽤FLV格式封装的⽂件后缀为.flv。,在解析时需要注意。原创 2024-02-18 08:18:19 · 881 阅读 · 0 评论 -
音视频基础(六)---AAC ADTS格式
有的时候当你编码AAC裸流的时候,会遇到写出来的AAC⽂件并不能在PC和⼿机上播放,很⼤的可能就是AAC⽂件的每⼀帧⾥缺少了ADTS头信息⽂件的包装拼接。所以说number_of_raw_data_blocks_in_frame == 0 表示说ADTS帧中有⼀个AAC数据块。且这两种的header的格式也是不同的,⽬前⼀般编码后的和抽取出的都是ADTS格式的⾳频流。观察第⼀帧的⻓度确实为263个字节。每⼀帧的ADTS的头⽂件都包含了⾳频的采样率,声道,帧⻓度等信息,这样解码器才能解析读取。原创 2024-02-17 23:26:14 · 838 阅读 · 0 评论 -
音视频基础(五)---FFmpeg内存模型
◼ 对于多个AVPacket共享同一个缓存空间,FFmpeg使用的引。◼ 初始化引用计数为0,只有真正分配AVBuffer的时候,◼ 当释放了引用共享空间的Packet,就将引用计数-1;◼ 当有新的Packet引用共享的缓存空间时,就将引用计数。用计数为0时,就释放掉引用的缓存空间AVBuffer。◼ AVFrame也是采用同样的机制。引用计数初始化为1;原创 2024-02-17 21:41:16 · 352 阅读 · 0 评论 -
音视频基础(一)---原理
下图是一个3位量化的示意图,可以看出3位量化只能表示8个值:0.75,0.5,0.25,0,─0.25,─0.5,─0.75和 ─1,因而量化位数越少,波形就越难辨认,还原后的声音质量也就越差(可能除了一片嗡嗡声之外什么都没有)。YUV存在多种格式,比如YUV420p,YUV420sp等,不同的YUV格式的数据在存储时的排列顺序是不一样的,在开发的过程中必须非常注意,否则画面会显示不正常。声音的频率是周期的倒数,它表示的是声音在1秒钟内的周期数,单位是赫兹(Hz)。帧率越高,给人的视觉就越流畅。原创 2023-11-25 22:50:54 · 919 阅读 · 0 评论 -
音视频基础(3)---ffmepg及faplay命令
ffmepg查看帮助文档命令◼基本信息:ffmpeg -h◼高级信息:ffmpeg -h long◼所有信息:ffmpeg -h full若嫌打印过多: ffmepg -h full > ffmpeg_h_full.log,然后再打开ffmpeg_h_full.log文件查看usage:ffmpeg [options] [[infile options] -i infile]…{[outfile options] outfile}…ffplay命令查看帮助文档所有信息:ffplay原创 2023-11-25 23:41:29 · 1010 阅读 · 0 评论 -
音视频基础(四)---FFmpeg库基础
FFMPEG有8个常用库AVUtil:核心工具库,下面的许多其他模块都会依赖该库做一些基本的音视频处理操作。AVFormat:文件格式和协议库,该模块是最重要的模块之一,封装了Protocol层和Demuxer、Muxer层,使得协议和格式对于开发者来说是透明的。原创 2024-02-17 15:54:14 · 853 阅读 · 0 评论 -
音视频基础(二)---封装格式+音视频同步
PTS(Presentation Time Stamp):即显示时间戳,这个时间戳用来告诉播放器该在什么时候显示这一帧的数据。DTS(Decoding Time Stamp):即解码时间戳,这个时间戳的意义在于告诉播放器该在什么时候解码这一帧的数据。封装格式(也叫容器)就是将已经编码压缩好的视频流、音频流及字幕按照一定的方案放到一个文件中,便于播放软件播放。对于视频也是一个道理,同样的音视频流可以用不同容器来承载。External Clock Master:同步音频和视频到外部时钟。原创 2023-11-25 22:57:35 · 61 阅读 · 0 评论