随笔分类 - 音视频
摘要:一、为什么静态符号会冲突 无论macho二进制类型,还是Windows上的PE格式,还是Linux上的ELF格式,里面都是按照特定格式存放的一个程序的代码和数据 比如Linux下的可执行文件格式,大致分为下面这些段 参考:https://www.ibm.com/developerworks/cn/l
阅读全文
摘要:一、准备工作 参考:https://www.cnblogs.com/doudouyoutang/p/10220599.html 搭建本地rtmp服务: https://www.cnblogs.com/doudouyoutang/p/6602430.html 获取使用到的库,openssl 和 lib
阅读全文
摘要:一、准备工作 搭建本地rtmp服务: https://www.cnblogs.com/doudouyoutang/p/6602430.html 获取使用到的库,openssl 和 librtmp 参考: https://www.jianshu.com/p/b38656443e71 https://g
阅读全文
摘要:一、构建X264准备 1、下载X264源代码到本地,并解压、修改文件夹名称为x264 ftp://ftp.videolan.org/pub/x264/snapshots/ 2、下载gas-preprocessor.pl 放入 /usr/local/bin/gas-preprocessor.pl ht
阅读全文
摘要:一、iOS中的音视频都是采用一个叫做CMSampleBuffer的格式封装的 比如回调的App音频 比如回调的micphone音频 从这个结构中,可以得到这个音频数据的描述信息 输出为格式的描述信息 关于音频格式有几个关键信息:格式、采样率、采样精度、声道数 关于音频数据除了上面的格式信息之外,还有
阅读全文
摘要:一、ReplayKit2 框架回调中 视频、micphone声音、系统声音三路回调 现在的问题是,micphone的回调几乎是实时的,每秒42次 但是App的声音是几乎500ms一次 这个带来两个声音之间的混音同步问题, 如果强制同步App的声音,必将带来500ms的延时 如果不同步,会带来App路
阅读全文
摘要:一、需求 通过脚本,可以检查本地flv文件格式是否正确,可以打印每个Tag中的二进制内容 二、效果 可以看到VideoTag中开始处增加了一段SEI数据,并且可以看到部分字段,gameid、time、network 三、实施 1)为了不重复造轮子,利用python下面的flvlib库 可以通过 pi
阅读全文
摘要:一、需求 在RTMP推送的流中添加一个接口,可以添加自定义的数据(一段字节数组)。 经过分析,在H264的流中可以通过SEI添加自定义数据,下面是实施的总结 二、实施 1)准备工具 RTMP推流客户端 ffmpeg命令行工具 flvlib命令行分析工具 flvAnalyzer UI 分析工具 2)理
阅读全文
摘要:一、H264数据结构 一个原始的H.264 NALU 由一个接一个的 NALU 组成的,而它的功能分为两层,VCL(视频编码层)和 NAL(网络提取层). VCL:包括核心压缩引擎和块,宏块和片的语法级别定义,设计目标是尽可能地独立于网络进行高效的编码。 NAL:负责将VCL产生的比特字符串适配到各
阅读全文
摘要:一、协议分层 RTMP包是以Message的结构封装的,结构如下所示: 1)Message Type ID在1-7的消息用于协议控制,这些消息一般是RTMP协议自身管理要使用的消息,用户一般情况下无需操作其中的数据。 Message Type ID为8,9的消息分别用于传输音频和视频数据。Messa
阅读全文
摘要:一、问题描述 最近测试反馈一个隐私模式的问题,主播端启用隐私模式之后,在观看端发现画面转菊花并且还有回跳的现象 二、问题分析: 从网上下载了直播的视频文件,进行了一下分析,发现视频长度和音频长度不匹配,视频只有2分钟,音频有8分钟 怀疑是视频编码失败导致,因为没有log,不能够确认当时的情况,现在将
阅读全文
摘要:一、原文地址 https://blog.csdn.net/leixiaohua1020/article/details/46889389 在此向雷霄骅致敬!!! 二、视频播放器实现思路 1)视频播放器大致可分为,视频文件IO模块,解复用模块,音视频解码模块,视频渲染模块,音频播放模块 2)ffmpe
阅读全文
摘要:一、YUV格式 1)kCVPixelFormatType_420YpCbCr8PlanarFullRange = 'f420' 对应YUV I420格式 2)kCVPixelFormatType_420YpCbCr8BiPlanarFullRange = '420f' 对应NV12格式
阅读全文
摘要:一、iOS进程中使用的内存 1)内存的类型 2)Xcode 自带的Instruments工具能够监测到下面几种类型 通常代码中OC的对象生成释放,c、C++对象的生成释放,malloc和free都能被监控 二、直播助手在排查内存问题时却遇到一个奇怪的问题 Instruments工具记录没有内存泄漏,
阅读全文
摘要:一、现象 ReplayKit2 适配中 UPLOAD进程被系统杀掉 日志中显示原因:exceeded mem limit: ActiveHard 50 MB (fatal) 二、内存占用分析 1)系统回调YUV数据(NV12类型)给到UPLOAD进程,回调方法运行在多线程中 上述在多线程中带来两个问
阅读全文
摘要:一、H264文件获取 下载一段MP4文件,通过FFMPEG转换成MP4 二、通过解析H264成帧,然后刷新 这里的环境是 MacOS + Python2.7 + openCV2 三、效果
阅读全文
摘要:一、需求 直播助手在录屏过程中,产品要求跟随用户手机屏幕旋转,录屏的视频跟随旋转 二、实施方案 目前触手录,iTools PC端均已经实现该功能,并且该功能只适配iOS9和iOS10系统。猜测实现方案有两种方式: 1、Airplay协议升级,支持在用户旋转之后,系统发送过来的H264数据已经旋转,可
阅读全文
摘要:up vote9down voteaccepted +50 +50 "Audio Recorder" is indeed a very simple tweak. The author tried to obfuscate important parts of his tweak (which fu
阅读全文