05 2020 档案

摘要:1.引用头文件 extern "C"的解释,C++支持函数的重载,面向过程的C语言不支持函数重载的。同一个函数在C++中编译后与在C中编译后,在符号表中的签名时不同的,假设针对同一个函数,void decode(float position,float duration);在C语言中编译的签名是_d 阅读全文
posted @ 2020-05-31 21:58 tryFighting 阅读(913) 评论(0) 推荐(0)
摘要:音视频同步 *主要有三种,分别是以音频为主时间轴作为同步源;以视频为主时间轴作为同步源;以外部时钟为主时间轴作为同步源。 以音频作为对齐基准的实现 *播放器接收到的视频帧或者音频帧,内部会有时间戳来标识应该在什么时刻展示,实际的对齐策略:比较视频当前的播放时间和音频的当前播放时间,如果视频播放过快, 阅读全文
posted @ 2020-05-30 22:15 tryFighting 阅读(586) 评论(0) 推荐(0)
摘要:ffprobe的高级用法 查看格式 ffprobe -show_format abc.mp4可以输出格式信息format_name,时间长度duration,文件大小size,比特率bit_rate,流的数目nb_streams等 以Json形式输出具体每一个流最详细的信息 ffprobe -pri 阅读全文
posted @ 2020-05-30 22:13 tryFighting 阅读(358) 评论(0) 推荐(0)
摘要:FFmpeg 常用命令汇总 录制视频 1.录制屏幕-i 指定从哪儿采集数据,它是一个文件索引号-r 指定帧率ffmpeg -f avfoundation -i 1 -r 30 out.yuv2.播放yuv数据需指定分辨率与像素格式ffplay -s 3360x2100 -pix_fmt uyvy42 阅读全文
posted @ 2020-05-29 18:47 tryFighting 阅读(520) 评论(0) 推荐(0)
摘要:FFmpeg编译 *.默认的编译会生成4个可执行文件和8个静态库 4个可执行文件 *.可执行文件包括转码,推流,Dump媒体文件的ffmpeg,用于播放媒体文件的ffplay,用于获取媒体文件信息的ffprobe,以及作为简单流媒体服务器的ffserver. 8个静态库 1.AVUtil:核心工具类 阅读全文
posted @ 2020-05-29 11:56 tryFighting 阅读(864) 评论(0) 推荐(0)
摘要:交叉编译(视频篇) *.X264是一个开源的H.264/MPEG-4 AVC视频编码函数库,是最好的有损视频编码器之一。一般的输入是视频帧的YUV表示,输出是编码之后H264数据包,并且支持CBR,VBR模式,可以在编码过程中直接改变码率的设置,这在直播的场景中是非常实用的,直播场景下利用该特点可以 阅读全文
posted @ 2020-05-28 22:26 tryFighting 阅读(180) 评论(0) 推荐(0)
摘要:交叉编译的原理 *音视频交叉编译的重要性,包括X264,FDK_AAC,LAME,最终将以LAME库为例完成一个将音频的PCM数据编码成MP3的实例 交叉编译的原理 1.PC上运行一个二进制文件,要有源代码然后在PC上进行编译链接生成可执行文件,最后在终端执行文件。当然最重要的是编译器和链接器了,对 阅读全文
posted @ 2020-05-28 16:33 tryFighting 阅读(494) 评论(0) 推荐(0)
摘要:视频的数据表示 1.对于视频帧的裸数据表示,更多的是YUV数据格式的表示,YUV主要应用于优化彩色视频信号的传输,使其向后兼容老式黑白电视。它最大的优点在于只需要占用极少的频宽(RGB要求三个独立的视频信号同时传输)。其中Y表示明亮度,也称为灰阶值;而U和V表示的则是色度。他们的作用是描述影像的色彩 阅读全文
posted @ 2020-05-27 16:56 tryFighting 阅读(1060) 评论(0) 推荐(0)
摘要:I/P/B帧 I帧:关键帧,采用的是帧内压缩技术 B帧:前后参考帧,它属于帧间压缩技术,在压缩成B帧前,它会参考它前面的非压缩视频帧,和后面的非压缩的视频帧,纪录下前后两帧都不存放的残差值,这样可以达到更好的压缩率。 P帧:向前参考帧,就是参考的是前一个关键帧的数据,P帧属于帧间压缩技术,相对于B帧 阅读全文
posted @ 2020-05-26 18:16 tryFighting 阅读(2166) 评论(0) 推荐(0)
摘要:音频的裸数据格式就是脉冲编码调制(Pulse Code Modulation ,PCM)数据。描述一段PCM数据一般需要量化格式(有的地方描述为位深度)(sampleFormat),采样率(sampleRate),声道数(Channel) 压缩编码的原理实际上是压缩冗余信号,冗余信号是指不能被人耳感 阅读全文
posted @ 2020-05-26 15:16 tryFighting 阅读(412) 评论(0) 推荐(0)
摘要:Error Domain=NSCocoaErrorDomain Code=3840 "JSON text did not start with array or object and option to allow fragments not set." UserInfo={NSDebugDescr 阅读全文
posted @ 2020-05-15 10:03 tryFighting 阅读(691) 评论(0) 推荐(0)