代码改变世界

视频播放器的丢帧逻辑

2018-11-26 23:58 by jiayayao, 2630 阅读, 0 推荐, 收藏, 编辑
摘要:最近在做播放器在电视盒子上的适配,发现一个严重的问题:低端机型解码能力不足。表现是丢帧,音画不同步。对此,有两种解决方法。 一、解码前丢帧 思路是记录25帧(1s)解码的总时间decodeTotalTime,减去25帧播放的总时间playTotalTime得到差值diff。如果diff大于0,说明解 阅读全文

iOS VideoToolBox decoder解码失败(-12909和-12911)问题解决

2018-09-02 20:21 by jiayayao, 4629 阅读, 2 推荐, 收藏, 编辑
摘要:对于任何H.264解码器而言,都要将SPS和PPS信息传递给解码器。FFmpeg内部做了设置,所以没有显示设置。但是对于硬件解码器来讲,开发者必须手动设置。另外,使用FFmpeg解码出来的视频帧是以YUV格式存储于内存中的,但是对于硬件解码器来讲,一般都是直接解码到显存,便于后续的处理与渲染。H.2 阅读全文

H.264从SPS中提取视频宽高

2018-08-05 23:12 by jiayayao, 2946 阅读, 1 推荐, 收藏, 编辑
摘要:H.264有两种封装模式: (1)annexb模式:传统模式,使用start code来分隔NAL, SPS和PPS是在ES流的头部; (2)mp4模式:没有start code,使用NALU长度(固定字节,通常为4个字节)来分隔NAL。AVCodecContext的extradata内部保存着分隔 阅读全文

FFMpeg笔记(五) 录制小视频问题记录

2018-04-05 23:00 by jiayayao, 4991 阅读, 1 推荐, 收藏, 编辑
摘要:1. YUV数据在使用avfilter scale时在特定的分辨率下UV分量不对 由于是小视频,那么分辨率不需要太高,但是有的视频源是1080p,甚至有的是4K的,所以对视频源进行scale非常有必要。scale操作可以使用avfilter或者sws_scale完成,具体参考: FFMpeg学习(四 阅读全文

FFMpeg笔记(三) 音频处理基本概念及音频重采样

2018-04-05 22:46 by jiayayao, 17079 阅读, 3 推荐, 收藏, 编辑
摘要:Android放音的采样率固定为44.1KHz,录音的采样率固定为8KHz,因此底层的音频设备驱动需要设置好这两个固定的采样率。如果上层传过来的采样率不符的话,需要进行resample重采样处理。 几个名词: 1. 采样率 采样设备每秒抽取样本的次数 2. 音频格式及量化精度(位宽) 每种音频格式有 阅读全文

[转载]AVFormatContext结构体详细分析

2017-09-16 19:40 by jiayayao, 1855 阅读, 0 推荐, 收藏, 编辑
摘要:AVFormatContext描述一个媒体文件或媒体流的构成和基本信息。 这是FFMpeg中最为基本的一个结构,是其他所有结构的根,是一个多媒体文件或流的根本抽象。其中nb_streams和streams所表示的AVStream结构指针数组包含了所有内嵌媒体流的描述;iformat和oformat指 阅读全文

vlc源码分析(七) 调试HLS协议

2017-09-02 23:35 by jiayayao, 2891 阅读, 0 推荐, 收藏, 编辑
摘要:HTTP Live Streaming(HLS)是苹果公司提出来的流媒体传输协议。与RTP协议不同的是,HLS可以穿透某些允许HTTP协议通过的防火墙。 一、HLS播放模式 (1) 点播模式(Video on demand, VOD) 点播模式是指当前时间点可以获取到所有index文件和ts文件,二 阅读全文

视频直播时的QoS策略

2017-07-28 14:23 by jiayayao, 3602 阅读, 0 推荐, 收藏, 编辑
摘要:一、如何判断当前的网络状况 可以以发送一帧视频数据的时间为依据,判断当前网络拥塞情况。 网络中出现丢包和抖动,导致接收端接收数据超时,会激发发送端数据重传,重传机制本身挤占网络带宽,导致sendbuffer中的数据进一步发送失败,致使sendbuffer中的数据不断增多,达到上溢的警戒线,此时应用层 阅读全文

调试libRTMP代码来分析RTMP协议

2017-07-25 22:13 by jiayayao, 3844 阅读, 0 推荐, 收藏, 编辑
摘要:RTMP是Real Time Messaging Protocol(实时消息传输协议)的首字母缩写。该协议基于TCP,是一个协议族,常用在视频直播领域。RTMP协议的默认端口是1935。 学习一个协议最好的方法就是调试其通信过程,期间还可以使用wireshark抓包分析。本人在libRTMP的基础上 阅读全文

H.264的码率控制:CBR和VBR

2017-07-20 17:15 by jiayayao, 4284 阅读, 0 推荐, 收藏, 编辑
摘要:CBR: Constants Bits Rate, 静态比特率。 比特率在流的进行过程中基本保持恒定并且接近目标比特率,当对复杂内容编码时质量会下降。 在流式播放方案中使用CBR编码最为有效;优点是带宽恒定;缺点是画面变化较快时,视频质量无法达到要求,同时也会在简单的内容上浪费带宽; VBR: Va 阅读全文
上一页 1 2 3 4 5 6 ··· 8 下一页