![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
视频
文章平均质量分 71
baoyu45585
这个作者很懒,什么都没留下…
展开
-
音视频开发掌握知识圈
音视频开发是一个广泛而专业化的领域,需要掌握多方面的知识和技能。:了解数字信号处理原理、算法以及在音视频中的应用,包括滤波、采样、量化等内容。:熟悉音频编解码原理和常见的音频编码格式(如MP3、AAC、FLAC等),以及音频数据压缩、解压缩技术。:了解视频编解码的基本原理和常见视频编码标准(如H.264、H.265等),以及视频流的压缩和解压缩方法。:熟悉使用多媒体处理框架和库,比如FFmpeg、GStreamer等,用于处理音频、视频的播放、录制、转码等操作。原创 2024-03-13 18:08:04 · 836 阅读 · 0 评论 -
ffmpeg解码和渲染理解
FFmpeg 是一个功能强大的跨平台多媒体处理工具,包含了音视频编解码、封装/解封装、过滤器等功能。:首先需要初始化 FFmpeg 库,并注册相应的解码器和其他组件。:通过打开要解码的视频文件,该函数会读取文件头并准备进行解码。:通过获取视频流的详细信息,如视频时长、帧率等。:遍历各个流,找到视频流所在的索引。:通过视频流的编解码器 ID,在已注册的解码器中查找对应的解码器。:调用打开视频解码器,准备进行解码。:创建一个AVFrame结构体,用于存储解码后的原始视频帧数据。:创建一个AVPacket。原创 2024-03-11 17:32:08 · 1190 阅读 · 0 评论 -
第二章 Xshell5连接VM中虚拟系统Ubuntu1704
执行:sudo passwd 然后设置新密码。至此,Xshell连接Ubuntu成功。现在已经可以ping通虚拟机了。原创 2024-02-26 10:27:15 · 588 阅读 · 0 评论 -
第一章 Win10系统VM安装Ubuntu1704虚拟机
2.9、选择网络类型(NAT)原创 2024-02-26 10:14:15 · 487 阅读 · 0 评论 -
libpng编译-android端(libpng官网下载是没有android编译脚本)
配置ubuntu的ndk环境1、执行 sudo vim /etc/profile,对Path的路径文件进行更改(如果vim系统没有安装的话,使用vi替换) 如果提示分别执行执行。原创 2024-02-22 16:28:09 · 555 阅读 · 0 评论 -
FFmpeg部分数据结构简介
封装格式上下文结构体,也是统称全局的结构体,保存了视频文件封装格式相关信息。原创 2024-02-22 11:18:46 · 1296 阅读 · 0 评论 -
BT709 YUV与RGB 色彩空间的转换(处理色差问题)
在libyuv⾥,由于其RGBA与我们常⻅的RGBA是反的,所以我们使⽤的是libyuv的ABGRToI420。常⻅的601,709的⾊彩空间,包括两种,⼀种是full range的,也就是取值范围在(0,255),⼀种。D65的意思是⾊温,,6500K,嗯,冷暖屏就是从这出来的,iPhone基本会⽐6500K⾼⼀点。所以,我们看到的系数变成了23,79,8,并且其没有对16定电话,使⽤的还是16,具体原因我看。row_neon.cc⾥,对UV的量化使⽤的是256量化的,对Y使⽤的是128。原创 2024-02-22 11:05:01 · 1797 阅读 · 0 评论 -
ffmpeg的pcm、yuv小知识点
pcm、yuv保存调用,写个通用工具方法,平时快速保存,和调用方便查看自己bug。原创 2024-02-22 10:41:29 · 908 阅读 · 0 评论 -
第二章、FFmpeg增加RTP协议外部扩展信息解析
RTP头部协议,前12位为基础字节,对应第一个结构体,如果extension为1时候,才有外部扩展信息,外部扩展信息结构对应第二个结构体,分别对应profile、length、data。P:填充标志,占1位,如果P=1,则在该报文的尾部填充一个或多个额外的八位组,它们不是有效载荷的一部分。M: 标记,占1位,不同的有效载荷有不同的含义,对于视频,标记一帧的结束;序列号:占16位,用于标识发送者所发送的RTP报文的序列号,每发送一个报文,序列号增1。1.V:RTP协议的版本号,占2位,当前协议版本号为2。原创 2024-02-21 17:16:16 · 1453 阅读 · 0 评论 -
第一章RTP协议深入原理介绍
RTP协议格式:1.V:RTP协议的版本号,占2位,当前协议版本号为2。P:填充标志,占1位,如果P=1,则在该报文的尾部填充一个或多个额外的八位组,它们不是有效载荷的一部分。X:扩展标志,占1位,如果X=1,则在RTP报头后跟有一个扩展报头。CC:CSRC计数器,占4位,指示CSRC 标识符的个数。M: 标记,占1位,不同的有效载荷有不同的含义,对于视频,标记一帧的结束;对于音频,标记会话的开始。原创 2024-02-21 17:14:09 · 495 阅读 · 0 评论 -
ffmpeg拉流解说
1、卡住原因在使用ffmpeg进行拉流时,可能会遇到卡住的情况。这通常发生在网络不稳定的情况下,或者流媒体服务器响应速度较慢的情况下。此外,如果拉流的视频数据太大,则可能会使ffmpeg卡住。2、解决方法为了解决ffmpeg拉流卡住的问题,我们可以设置超时时间,当超过一定时间仍然无法获取数据时,立即退出拉流,从而避免卡住的情况。原创 2023-11-16 15:45:04 · 1328 阅读 · 0 评论 -
android MediaCodec 如何快速seek获取帧
解说正常思路seek到一个时间戳的的前一个I帧,然后进行解码到该时间戳进行显示、或者抽帧需求。假如你实现上面步骤后,正常是可以在优化的。原创 2023-11-14 11:55:30 · 820 阅读 · 0 评论 -
android ANativeWindow旋转渲染角度
videoExtractor在打开有角度视频文件mediaFormat.getInteger(MediaFormat.KEY_ROTATION);获取角度在MediaCodec在创建和configure时候传入角度,解码 mediaCodec.releaseOutputBuffer(outputBufferIndex, true);在渲染时候你发现你的视频正的,并没有旋转角度。原创 2023-11-14 11:21:47 · 779 阅读 · 0 评论 -
ffmpeg解码视频帧旋转角度
常见视频,有部分视频带有角度的,在ffmpeg视频流在获取AVFormatContext信息是可以获取角度信息,通过这个角度在播放器会进行旋转,不然你播放视频有角度视频。原创 2023-11-13 16:47:11 · 398 阅读 · 0 评论 -
FFmpeg滤镜(基础篇-第二章片尾logo)
android studio版本4.0以上ndk16cmake3.6什么是片尾logo?一个视频后面增加用户信息和动态logo命令说明:[video][watermask]overlay=224:924”:设置视频滤镜复杂图形链。具体来说:[1:v]scale=128:36[watermask]:将第二个输入文件(Logo视频)缩放为指定大小(128x36像素)。[0:v]fade=in:0:15[video]:对第一个输入文件(静态图片)应用淡入效果,持续时间为15帧。原创 2023-08-28 13:47:43 · 124 阅读 · 0 评论 -
FFmpeg滤镜(基础篇-第一章水印)
滤镜步骤1、创建graph2、创建buffer filter的上下文(要输入帧的载体)3、创建buffersink filter(要输出帧的载体)原创 2023-08-24 16:54:36 · 96 阅读 · 0 评论 -
视频帧缩放裁剪
应用场景:对视频进行无变形缩放选定要裁剪的坐标点、对应的宽高进行裁。##视频帧缩放裁剪-ffmpeg。原创 2023-08-18 17:15:15 · 53 阅读 · 0 评论 -
视频帧转换420p格式
说明:传入解码后的视频帧通过sws_scale方式进去转换。##ffmpeg-视频帧转换420p格式。原创 2023-08-18 17:06:05 · 48 阅读 · 0 评论 -
RTP头解析、RTP头部创建
RTP头部协议,前12位为基础字节,对应第一个结构体,如果extension为1时候,才有外部扩展信息,外部扩展信息结构对应第二个结构体,分别对应profile、length、data。PT: 有效载荷类型,占7位,用于说明RTP报文中有效载荷的类型,如GSM音频、JPEM图像等,在流媒体中大部分是用来区分音频流和视频流的,这样便于客户端进行解析。P:填充标志,占1位,如果P=1,则在该报文的尾部填充一个或多个额外的八位组,它们不是有效载荷的一部分。1.V:RTP协议的版本号,占2位,当前协议版本号为2。原创 2023-08-19 12:07:39 · 1605 阅读 · 0 评论