摘要:mp4是MPEG-4 Part 14的实现,包含3大box。 一、ftyp file type box,包含视频文件使用的mp4标准,也作为probe mp4的标志; 二、moov 包含媒体的元数据信息,包含一个mvhd(也就是header box)和若干个trak(track)。trak包含一条音 阅读全文
FFMpeg笔记(十一)常用FFmpeg命令行
2022-02-14 20:29 by jiayayao, 阅读(261) 阅读, 推荐(0) 推荐, 收藏, 编辑
摘要:获取yuv文件(100帧) ffmpeg -i /Users/jiayayao/Documents/Samples/video/3_1280_720_30fps_h264.mp4 -vframes 100 output.yuv 获取全部yuv文件 ffmpeg -i /Users/jiayayao/ 阅读全文
WebRTC笔记(四)NAT、STUN和ICE
2020-07-12 21:44 by jiayayao, 阅读(1382) 阅读, 推荐(0) 推荐, 收藏, 编辑
摘要:一、NAT NAT(Network Address Translator),网络地址转换。NAT是在IPv4地址日益缺乏的情况下产生一种缓解地址问题的方案。它的主要目的是为了地址重用。 NAT的基本思想是,由NAT设备(比如家用路由器)修改从私有网络发送到互联网的IP报文的源地址字段,以及修改从互联 阅读全文
WebRTC笔记(二)NetEQ模块简单分析
2020-04-05 18:33 by jiayayao, 阅读(2068) 阅读, 推荐(0) 推荐, 收藏, 编辑
摘要:NetEQ是WebRTC的音频处理模块,主要包含MCU和DSP两大处理单元,包含自适应缓冲区、语音解码器、抖动控制和丢包隐藏模块及播放四大部分。MCU的主要作用的安排数据包的插入和控制数据包的输出。插入的关注点是插入的位置,输出的关注点是输出的时间。抖动消除的算法思路在MCU控制模块中得以体现。DS 阅读全文
FFMpeg笔记(八) 读取RTP数据时的PTS计算[转载]
2020-04-04 21:29 by jiayayao, 阅读(3460) 阅读, 推荐(0) 推荐, 收藏, 编辑
摘要:结构体struct RTPDemuxContext中有若干时间戳相关的成员,含义如下 timestamp:上一个接收到的RTP时间戳 base_timestamp:第一个接收到的RTP时间戳 cur_timestamp:未知 unwrapped_timestamp:假如rtp时间没有32位溢出的话, 阅读全文
LeetCode 9. 回文数
2020-02-09 23:00 by jiayayao, 阅读(164) 阅读, 推荐(0) 推荐, 收藏, 编辑
摘要:判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 示例 1: 输入: 121输出: true示例 2: 输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3: 输入: 10输出: 阅读全文
iOS的VideoToolBox与Android的MediaCodec对PTS的处理异同
2019-12-21 20:42 by jiayayao, 阅读(1575) 阅读, 推荐(0) 推荐, 收藏, 编辑
摘要:视频源,不论是从采集设备采集到的,还是本身压制好的文件,其流中的数据都是按照编码顺序存储的。比如1 2 3 4 5,5帧视频数据,1编码成I帧,2 3 4编码成B帧,5编码成P帧。 编码过程: 1. 编码1为I帧; 2. 2,3,4准备编码为B帧,先缓存下来,记录其时间点作为PTS; 3. 再编码5 阅读全文
使用Xcode Instruments定位APP稳定性问题
2019-09-08 19:54 by jiayayao, 阅读(2037) 阅读, 推荐(0) 推荐, 收藏, 编辑
摘要:Xcode Instruments提供了各种各样的工具用来定位APP的各种稳定性问题。这里简单总结几个问题: 1. 内存泄漏 Xcode->Open Developer Tools->Instruments->Leak,打开后点击运行。执行测试流程后,如果没有内存泄漏,则Leak工具显示的是√,如果 阅读全文
iOS VideoToolBox decoder解码失败(-12909和-12911)问题解决
2018-09-02 20:21 by jiayayao, 阅读(5024) 阅读, 推荐(2) 推荐, 收藏, 编辑
摘要:对于任何H.264解码器而言,都要将SPS和PPS信息传递给解码器。FFmpeg内部做了设置,所以没有显示设置。但是对于硬件解码器来讲,开发者必须手动设置。另外,使用FFmpeg解码出来的视频帧是以YUV格式存储于内存中的,但是对于硬件解码器来讲,一般都是直接解码到显存,便于后续的处理与渲染。H.2 阅读全文
H.264从SPS中提取视频宽高
2018-08-05 23:12 by jiayayao, 阅读(3235) 阅读, 推荐(1) 推荐, 收藏, 编辑
摘要:H.264有两种封装模式: (1)annexb模式:传统模式,使用start code来分隔NAL, SPS和PPS是在ES流的头部; (2)mp4模式:没有start code,使用NALU长度(固定字节,通常为4个字节)来分隔NAL。AVCodecContext的extradata内部保存着分隔 阅读全文