代码编织梦想

ijkplayer源码分析 packetqueue分析_音视频开发老舅的博客-爱代码爱编程

前言 本文介绍PacketQueue,相对于FrameQueue来说比较简单,可以类比Android中的MessageQueue。 PacketQueue总体介绍 单向链表结构。first_pkt、last_pkt,是链表的起点和终点结点;recycle_pkt链表用于节点复用; 是一个多线程安全队列,靠等待唤醒机制保证线程安全; 当遇到flus

ijkplayer源码分析 framequeue分析_音视频开发老舅的博客-爱代码爱编程

FrameQueue结构体 FrameQueue结构体,持有queue数组,是基于环形队列实现的; rindex、windex、size、max_size和等待唤醒机制获取读写位置,利用环形队列最大限度节约了空间; 默认队列大小为16,最后由max_size = Math.min(max_size,FRAME_QUEUE_SIZE)来决定最大的元素个

mediacodec对接到omx的简单分析_音视频开发老舅的博客-爱代码爱编程

一、引言: nuplayer播放器是使用MediaCodec来进行编解码的,而OMX组件则是MediaCodec的解码核心,但是因为涉及的面太过底层,往往是芯片公司才会涉及到这一块,所以就做一个简单分析,对通路有个大致了解就行。 二、流程跟踪: 从MediaCodec的api来分析下流程: 1.构造函数: MediaCodec::Crea

mediaplayer的消息机制分析_音视频开发老舅的博客-爱代码爱编程

一、引子: 先贴一段log: 08-18 21:57:20.110 11775 11812 V MediaPlayer: resetDrmState: mDrmInfo=null mDrmProvisioningThread=null mPrepareDrmInProgress=false mActiveDrmScheme=false 08-18 2

ijkplayer播放器剖析(五)视频同步与渲染机制分析_音视频开发老舅的博客-爱代码爱编程

ijkplayer播放器剖析系列文章: kplayer播放器剖析(一)从应用层分析至Jni层的流程分析 ijkplayer播放器剖析(二)消息机制分析  ijkplayer播放器剖析(三)音频解码与音频输出机制分析  ijkplayer播放器剖析(四)音频解码与音频输出机制分析  一、引言: 在前面的博客中,将音频解码播放及视频解码都分析了,这

ijkplayer播放器剖析(四)音频解码与音频输出机制分析_音视频开发老舅的博客-爱代码爱编程

ijkplayer播放器剖析系列文章: ijkplayer播放器剖析(一)从应用层分析至Jni层的流程分析 ijkplayer播放器剖析(二)消息机制分析  ijkplayer播放器剖析(三)音频解码与音频输出机制分析  一、引言: 在上一篇博客中,将音频的解码和输出放在了一起分析,文章显得又长又冗杂,考虑到视频渲染及同步也是一个重点分析点,

ijkplayer播放器剖析(三)音频解码与音频输出机制分析_音视频开发老舅的博客-爱代码爱编程

一、引言: 在前面的博客中,我们对ijkplayer整个jni的流程及消息机制都详细的分析了一遍,分析流程机制有助于我们对整个架构有一个大致的了解,便于后续对音视频解码与输出渲染的分析,消息机制的分析有助于我们理解FFmpeg是如何处理输入输出buffer的。接下来,我们先梳理下read_thread这个线程,然后再分析音频是如何解码和输出的。 二

ijkplayer播放器剖析(二)消息机制分析_音视频开发老舅的博客-爱代码爱编程

一、引言: 上一篇博客ijkplayer播放器剖析(一)从应用层分析至Jni层的流程分析中分析了ijkplayer的整个流程,相信大家对其中的消息队列看的也是云里雾里的,所以这里单独对ijkplayer的消息机制做一个分析。 二、代码分析: 先看下消息机制是怎么创建起来的,创建的发起是native_setup函数: static void Ij

ijkplayer播放器剖析(一)从应用层分析至jni层的流程分析_音视频开发老舅的博客-爱代码爱编程

这篇博客将从应用层入手分析,看ijkplayer是如何调入到jni层的。 一、Java层代码分析: 选择码流进行播放时,将会跳转到VideoActivity,看一下onCreate: [email protected]\android\ijkplayer\ijkplayer-example\src\main\java\tv\danmaku\ijk\

修复ijkplayer没有正确处理sps导致的mediacodec解码失败问题_andylao62的博客-爱代码爱编程

播放HLS时,部分TS分片的sps排列是: 0 0 0 1 9 240 0 0 0 1 103 。。。 0 0 0 1 104。。。 其对应的内容是: 0 0 0 1 9 240 :表示AUD接着的 0 0 0 1 :表示 start code接着的103 :表示sps类型接着的就是sps的数据最后的0 0 0 1 104 :104表示是pps数据接着的

android 硬解情况下 sps/pps变化时重启解码器继续播放_andylao62的博客-爱代码爱编程

Android 硬解情况下 sps/pps变化时重启解码器继续播放 by guoshaobing66 · Pull Request #5385 · bilibili/ijkplayer · GitHub ijkmedia/ijkplayer/android/pipeline/ffpipenode_android_mediacodec_vdec.c @@

如何用ijkplayer使用改变清晰度功能(切换码流)_andylao62的博客-爱代码爱编程

ff_ffplay.c:read_thread() choose your like video stream id from ic->nb_streams set to st_index[AVMEDIA_TYPE_VIDEO] 自适应码率切换需要服务器端和客户端同时支持,首先服务器端需要提供多码率的码流,对HLS来说,就是需要服务器端提供ma

ijkplayer for android暂停播放后切到前台黑屏问题解决方法_相遇江湖的博客-爱代码爱编程

一、背景     最近维护了一个点播播放器,基于B站开源ijkplayer播放器做二次开发,支持Android和iOS平台。Android平台在Java层对ijkplayer包装了一层,做成了一个sdk的aar包,给App使用;iOS基于object-c将ijkplayer包装了一层,打成framework给App使用。     同事离职后,接手其所负

于win上编译ijkplayer for android_相遇江湖的博客-爱代码爱编程

一、环境准备     准备1台Centos虚拟机,可用Oracle Virtual Box虚拟机或者vmware进行安装,此处使用Oracle Virtual Box。 二、代码拉取到虚拟机     从https://github.com/bilibili/ijkplayer上拉取ijkplayer源码,然后切换到正

ijkplayer 初始化和prepare源码分析_正义啊的博客-爱代码爱编程

本文ijkplayer的版本是k0.8.8 一、Ijkplayer 初始化流程 1、Java层 – 在IjkVideoView中创建IMediaPlayer播放器接口 //创建Java层IMediaPlayer mMediaPlayer = createPlayer(mSettings.getPlayer()); //根据设置

ijkplayer支持播放rtsp、jpeg、gif_topsluo的博客-爱代码爱编程

ijkplayer版本:k.0.8.8 编译环境:Ubuntu 18.04.6 LTS 使用平台:android 支持rtsp播放 默认的ijkplayer并不支持rtsp流的播放,因为在编译ffmpeg的时候并没有开启rtsp的demuxer,所以在编译ffmpeg的时候需要开启rtsp的demuxer 开启ffmpeg rtsp的demuxer功

ijkplayer编译_正义啊的博客-爱代码爱编程

记录一下编译ijkplayer过程 一、环境 1.1、VMware + ubuntu 1.2、安装git、vim sudo apt install git sudo apt install vim 二、配置编译环境 2.1、配置AndroidSDK环境 2.1.1、下载AndroidSDK wget http://dl.google.com

【错误记录】android 应用导入 ijkplayer 报错 ( uses-sdk:minsdkversion 19 cannot be smaller than version 21 decl )_韩曙亮的博客-爱代码爱编程

文章目录 一、报错信息二、解决方案方案一方案二 一、报错信息 在 Android 应用中 , 使用 ijkplayer , 如果在 build.gradle 中配置了 abiFilters 如下架构 android { defaultConfig { ndk { abiFilters "arm

【视频格式】webm用什么播放_allangold的博客-爱代码爱编程

ffmpeg -formats 可以查看ffmpeg支持的所有媒体文件格式 File formats: D. = Demuxing supported .E = Muxing supported -- D 3dostr 3DO STR E 3g2 3GP2 (3GPP2 file format)

播放器各个阶段耗时分析点_andylao62的博客-爱代码爱编程

共耗时1.34秒,其中网络耗时在380+ms 13:48:32.226 起播 13:48:32.246~13:48:32.386 访问m3u8耗时140ms 13:48:32.386~13:48:32.626 访问第一个ts 耗时240ms 13:48:32.996~13:48:33.006 解析码流耗时10ms 13:48:33.006~13: