Java自学网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 9866|回复: 108

FFmpeg安卓流媒体播放器开发实战 基于NDK C++和FFmpeg Android

  [复制链接]

该用户从未签到

4

主题

146

帖子

290

积分

普通会员

Rank: 2

积分
290
发表于 2022-12-14 22:00:01 | 显示全部楼层 |阅读模式
220002hz8tn0s1qzest131.png
0 v; m0 _* h1 g; n4 g
! r; t! U% E) t4 K- L3 M/ lFFmpeg安卓流媒体播放器开发实战-基于NDK C++和 FFmpeg Android
1 t4 D# T, N+ G+ A, K( W├──1 课程介绍及音视频基础知识  
- d$ e/ _4 [0 i|   ├──1 课程介绍 .mp4  52.05M) P7 `" g& m- p7 M# S& x' b: A
|   ├──2 音视频基础知识Mpeg4封装格式音视频编码格式讲解 .mp4  18.21M
) e- g7 [& ]3 Y( ]0 v& G; S|   ├──3 音视频解封装和解码原理分析 .mp4  26.14M
2 I- W% K( ^2 ]. o6 j. l9 ?|   ├──4 图形像素格式RGB和YUV格式分析 .mp4  21.94M' Q* `6 B5 G, U# [0 t! Y
|   ├──5 PCM音频采样率 通道 planar等格式参数分析 .mp4  13.89M8 r$ x5 x: e: |8 e' h
|   └──6 MP4标准和h264格式的NAL的GOP分析 .mp4  23.64M
' U4 v  y) k/ z8 C( N- L├──10 视频播放器项目实战-音视频解码解封装  ' d( Z0 h2 q4 p
|   ├──1 项目创建权限ABI和CMake相关库和头文件配置 .mp4  18.08M, I* U0 h3 B4 l  M( j
|   ├──10 添加IDemux的GetVPara获取视频XParamter .mp4  10.71M
9 u/ y0 H. k' {; ~- ^|   ├──11 封装FFDecode解码的Send和Recv接口 .mp4  24.75M) U) w  _( I  _) w( l
|   ├──12 读取媒体帧数据获取类型信息(音频 视频)存入XData .mp4  15.05M
5 z  Y/ E9 y" t$ U|   ├──13 完成音视频解码和并重构解码器加入观察者模式 .mp4  20.57M1 n% m6 ]* ~7 D
|   ├──14 加入生产者消费者模式控制音视频缓冲 .mp4  33.18M" b2 p; Q$ Q' B+ U9 U( R, u
|   ├──2 创建安卓流媒体播放器XPlay项目并配置添加了解封装模块代码 .mp4  25.87M
# a4 @* J2 \: t3 W2 h: X|   ├──3 FFDemux的Open实现打开媒体文件 .mp4  27.96M& w% J2 G$ e0 N
|   ├──4 FFdemux的Read读取帧数据接口编写 .mp4  19.53M
$ j6 ]" b/ X( z* d" K|   ├──5 完成XThread线程类IDemux继承后在线程中读取帧数据 .mp4  23.92M
/ X7 N+ Z% v* ]( a  n4 @, H1 V9 y|   ├──6 添加了XSleep完成XThread线程函数的停止和超时判断 .mp4  16.88M
7 t' a' `  E, y% ?|   ├──7 观察者Observer模式的代码实现并使用IDemux测试 .mp4  24.30M
+ ]9 {+ n& i. o3 {4 [. O1 d- s|   ├──8 IDecode和FFDecode模块代码创建 .mp4  17.15M4 U* v8 W5 U' y" v0 ~' c, D
|   └──9 FFDecode的Open打开解码器接口编写Observer .mp4  17.81M
3 l; y  Z; r7 {) g: B, L7 i├──11 视频播放器项目实战-音视频播放  
; V: ^, a6 z6 D|   ├──1 IVideoView显示模块架构讲解和代码创建 .mp4  40.02M
4 f2 b/ n# m5 q* ]; @2 f' H|   ├──10 SLAudioPlay音频播放完成并测试对MP4文件音视频播 .mp4  24.13M
1 g' F' u* _6 z, y|   ├──11 完成硬解码并完成NV21和NV12格式的shader显示编写 .mp4  90.35M) Y  E+ ~, E, P, J) ~
|   ├──12 解决android8.0下opengles不能播放的问题 .mp4  12.41M- c7 J' V0 a; A
|   ├──2 IEGL类初始化封装java部分添加XPlay窗口类 .mp4  49.96M
9 s" D9 N3 g8 Q, W& {|   ├──3 XShader基于yuv420p的初始化Init代码完成并测 .mp4  37.07M9 [) V* `  q" L  G& _3 G
|   ├──4 XTexture初始化并完成GLVideoView的调用 .mp4  30.44M
! m$ h: ?2 a7 y  f8 ~$ U% D' h* O|   ├──5 GLVideoView完成使用shader显示视频 .mp4  68.41M# c/ F0 D5 D8 F3 x
|   ├──6 完成音频重采样IResample模块初始化代码 .mp4  23.69M
+ c7 w! u5 g! L* s' C|   ├──7 完成音频重采样IResample模块的处理功能 .mp4  55.16M
  \2 o9 s, f- D, U; b|   ├──8 完成了IAudioPlay和SLAudioPlay的音频播放 .mp4  63.88M
# \6 \8 ]6 q& V# e, l  f4 Q: E. R|   └──9 IAudioPlay的Update将音频压入缓冲队列并测试 .mp4  24.93M1 u% r9 I2 D' \9 D
├──12 视频播放器项目实战-完成架构解决同步和seek  ) u; \  Q5 M5 w( Q0 Y
|   ├──1 完成facade模式的IPlayer并实现Open接口 .mp4  63.39M! }" x6 h/ B+ |  n# D
|   ├──10 XShader线程安全处理和Close清理函数编写 .mp4  22.69M
: L2 [# B9 w* [) u& h|   ├──11 XTexture和GLVideoView的线程安全和清理函数 .mp4  20.64M; C, W5 {# i  @6 R
|   ├──12 IPlayer完成Close清理函数编写并完成多次打开视频 .mp4  42.00M9 d2 b" j3 J/ ~8 t" N3 f
|   ├──13 添加打开视频按钮和进度滑动条并响应打开事件 .mp4  22.79M
& V7 b6 e, K; c- Z|   ├──14 添加视频打开路径和香港卫视rtmp打开路径的界面 .mp4  14.65M
. z+ N' K: n* W) C* o: r|   ├──15 完成通过界面多次打开视频文件 修正了多次打开显示出现的bug .mp4  34.00M# b8 s' }: w+ S& c. s
|   ├──16 在835cpu的手机中测试并修正了音频播放Close的bug .mp4  27.18M) G  v) A0 D3 |
|   ├──17 完成了播放进度的显示并修正了硬解码参数传递错误 .mp4  40.71M
% i" Z, S! n/ C' L) A' {# W6 p|   ├──18 滑动条拖动Seek视频开发策略详细分析 .mp4  12.94M
- @3 m# j. y5 e|   ├──19 完成了IDemux的Seek和界面SeekBar的事件响应 .mp4  38.32M& L0 x8 C. q9 y2 ]7 t' P% J
|   ├──2 完成Iplayer开始播放和窗口初始化接口 .mp4  21.66M& i! B! b* f" E( I" ?$ J' P) [
|   ├──20 添加了视频播放的暂停和恢复 .mp4  41.10M
; _2 l: w) Q4 M8 Q9 I|   ├──21 修改了视频播放到结尾再次打开会锁死的bug .mp4  23.66M
6 w, t9 u) r. @0 ]7 d5 L6 z1 ^|   ├──22 通过手动解码帧数据完成了IPlayer控制视频播放进度的功能 .mp4  40.77M( n0 Q" ~# {/ R7 ?+ ?
|   ├──3 完成Builder模式的IPlayerBuilder构建IP .mp4  66.77M! e4 Z0 t+ Y5 s( h* a6 \8 }
|   ├──4 完成IPlayerProxy代理模式并进行测试架构搭建完成 .mp4  30.76M
8 q8 g% _$ _# `' {& R9 q2 M: i|   ├──5 统一换算pts为毫秒使用IPlayer完成音视频同步播放 .mp4  60.93M, F5 ]1 V% F+ ?' s" S
|   ├──6 IDemux&FFdemux线程安全和Close清理函数编写 .mp4  17.59M4 Y' o" N6 K0 B! i2 S
|   ├──7 FFdecode和FFResample线程安全处理Close .mp4  29.05M. P" R4 o2 a9 Z  H+ d
|   ├──8 SLAudioPlay的线程安全处理和Close清理函数编写 .mp4  30.07M& ?8 S* g7 ^% E0 t* o+ S
|   └──9 XEGL的线程安全处理和Close清理函数编写 .mp4  17.99M4 K/ B3 }/ E5 h3 a* r2 H$ v
├──2 AndroidStudio开发工具和开发环境准备  " O: \/ f. n  ?0 ?8 s. u
|   ├──1 开发所用到的工具和sdk介绍 .mp4  10.05M9 u: X# r# R, a" O6 ?2 V. s( J' J
|   ├──2 AndroidStudio开发工具安装使用讲解 .mp4  24.92M9 }& L. @' H' Q: h# J6 v
|   ├──3 Android SDK目录内容分析 .mp4  11.02M
2 k9 x  B& q' v# x1 P|   ├──4 AndroidNDK工具目录功能分析 .mp4  9.11M9 r9 [0 a# ^! v' I
|   └──5 安卓模拟器安装和第一个c++安卓程序编译运行 .mp4  48.49M  n0 Z! }; T% L/ U* c
├──3 Android NDK交叉编译FFMpeg并添加测试AS项目  2 o, t7 [0 u/ `9 z- v/ K9 p
|   ├──1 安卓NDK相关概念ABI NEON JNI和CMAKE分析 .mp4  18.74M
( t- H- Z: I& W( d3 O' {% P|   ├──10 JNI和c传递文件路径并设置app的读写权限 .mp4  34.82M% f* H: K5 A0 z7 N- \
|   ├──2 NDK中CPU的应用二进制界面ABI .mp4  14.11M
7 F. a5 l& A2 U7 `|   ├──3 ubuntu虚拟机及常用工具安装并配置samba共享目录 .mp4  37.44M5 y: v! k  I- h/ ~3 p: b
|   ├──4 ffmpeg源码下载在android下的编译参数分析讲解 .mp4  20.62M# M( z1 Z- E/ ?: O
|   ├──5 在ubuntu下交叉编译ffmpeg的android版本库 .mp4  47.01M  H5 ]' S7 u+ E- s6 I) V5 j
|   ├──6 ffmpeg通用编译bash脚本编写 硬解码 neon 多线 .mp4  55.33M7 h; M3 {3 T% D* h' ^5 {$ C1 j
|   ├──7 AndroidStudio项目配置权限 jni库路径 ABI .mp4  12.66M
9 {3 Z% H3 D" \|   ├──8 cmake配置(导入库 头文件 链接)分析 .mp4  17.59M
. h" e. H7 f' a& q7 ?& b% S|   └──9 创建支持ffmpeg的AndroidStudio项目并调用 .mp4  44.82M
0 D' ~1 r6 ]5 M- E: n1 ?├──4 FFmpeg解封装(C++ NDK)  7 b& B& _1 N) d6 O% G
|   ├──1 ffmpeg SDK软硬解码流程说明 .mp4  7.20M
$ b9 b5 w; b8 v6 j/ M6 k$ }|   ├──10 AVPacket结构解析空间申请 初始化 复制 引用计数函数 .mp4  14.90M( Z3 x: M! J  w7 A& N0 n8 E5 Q
|   ├──11 av_seek_frame改变播放进度函数详解 .mp4  12.31M; H6 H) J6 U! s* ]  C  ?
|   ├──12 av_read_frame和av_seek_frame代码 .mp4  20.68M
9 p) b/ J4 _1 ^& D0 g, I8 z|   ├──2 ffmpeg音视频解封装用到的函数和结构体详解 .mp4  13.96M
4 u4 E% s3 F; P; X|   ├──3 avformat_open_input函数详解并示例打开mp .mp4  37.00M
1 A% t3 Z# Z$ s7 T& ^. Q|   ├──4 AVFormatContext结构分析和清理代码示例 .mp4  13.87M
9 s# W3 t) S, m- P0 b|   ├──5 avformat_find_stream_info探测 .mp4  18.08M
: ^/ S' |, O$ V0 l0 t|   ├──6 AVStream和AVCodecParameters分析 .mp4  22.42M
( K8 \0 D6 V  y  Z% h4 z|   ├──7 通过遍历获取AVStream音视频流信息并打印参数 .mp4  31.77M
& w+ e5 h6 l4 S) A0 I9 u+ n& M' M# O|   ├──8 通过av_find_best_stream获取音视频流索引 .mp4  7.86M. u# u/ \$ d0 J% v4 h
|   └──9 av_read_frame读取帧数据函数分析和产生的空间问题 .mp4  9.46M6 k2 }/ B6 {; X5 e4 K$ x) h
├──5 FFmpeg软硬解和多线程解码(C++ NDK)  
5 `9 ^5 @+ l! p( U: L|   ├──1 AVCodecContext解码上下文初始化讲解和视频解码器 .mp4  34.00M# Y- B7 B8 q$ Y+ g0 }; _6 x2 k$ T
|   ├──2 打开音频解码器上下文 .mp4  11.79M( N! b, u3 @. k& v# ]5 A, o! r
|   ├──3 AVFrame格式解析和空间处理函数 .mp4  13.84M  C* u1 e9 F; n7 ?: P# j
|   ├──4 avcodec_send_packet和receive .mp4  10.93M
: ]; g+ |: k2 D  Q  ]  [. `|   ├──5 音视频多线程解码代码演示 .mp4  17.96M
3 c7 }# k/ p% f* V; ~|   ├──6 音视频解码性能测试neon单线程和八线程解码测试代码 .mp4  27.32M& m! r& H/ l, H3 M6 i/ L: ~- ]
|   └──7 ffmpeg调用MediaCodec实现硬解码代码演示 .mp4  9.26M+ T2 I. T# C% p
├──6 FFMpeg音频重采样和视频格式转换和显示  2 d# b- K% Q& l
|   ├──1 sws_getContext和sws_scale像素格式 .mp4  18.95M* H  o- v, {# L% u9 B! t
|   ├──2 sws_scale像素格式转换代码演示 .mp4  33.30M
5 c5 S! y/ }( G9 L; d/ q$ w|   ├──3 音频重采样SwrContext格式和swr_convert .mp4  7.85M; \" Y  I, H$ S$ }5 `: s
|   ├──4 swr_init音频重采样上下文初始化和swr_conver .mp4  33.73M
8 R5 h  d( X4 _- @|   ├──5 分析GLSurfaceView和NDK接口直接显示RGB视频 .mp4  14.97M
6 C# v! M" q& B6 V' ]) g9 g|   ├──6 使用NDK通过GLSurfaceView双缓冲空间复制完成视 .mp4  54.51M
9 T; @, l& ~& E|   └──7 安卓视频播放窗口去掉标题栏 全屏 横屏 .mp4  21.23M1 a- _4 f7 Y4 Y: G
├──7 OpenSLES音频播放  
& c0 k& a6 e3 W! c2 o' j- _|   ├──1 OpenSLES播放音频步骤和接口讲解 .mp4  30.37M7 g' K& N' Q% Y! i$ e3 B$ A. v
|   ├──2 创建OpenSLES音频播放测试项目并完成引擎初始化 .mp4  23.14M
2 e: I! z$ |5 T: Y9 b* I5 v9 w* ]|   ├──3 完成OpenSLES混音器CreateOutputMix初始 .mp4  11.20M
$ S* [; O% `' N- l. \' E+ U|   ├──4 配置OpenSL的PCM音频输入格式 .mp4  8.39M
7 D& C  m+ T9 x- n( Q|   └──5 读取pcm音频文件并使用OpenSL播放 .mp4  46.00M
/ E( P0 w$ J4 u7 l├──8 EGL和OpenGLES Shader显示YUV视频  1 f5 _& c" D2 x- x: J5 |
|   ├──1 egl和opengl_shader_glsl讲解 .mp4  19.71M' a9 @7 M9 I0 @/ z
|   ├──10 OpenglES纹理数据修改和显示 .mp4  18.25M
, n7 e; g- W5 U( I|   ├──11 通过OpenglES纹理修改完成yuv文件的播放显示 .mp4  11.14M7 F+ n8 c  S; @7 b0 C0 g
|   ├──2 testopengles_shader项目配置和创建 .mp4  21.83M# ?' @1 z7 X: r5 q4 I5 ^/ v
|   ├──3 NDKC++完成EGL display surface .mp4  36.51M
. G% X* k, J% E7 x+ a9 s( K|   ├──4 Opengl ES Shader顶点坐标和材质坐标分析 .mp4  15.69M% W! S5 T+ P; T/ m2 z1 U  e, N
|   ├──5 顶点着色器代码glsl代码编写 .mp4  12.33M
# X- o/ ~/ _7 k2 K0 ?5 E/ l* I|   ├──6 yuv420p片元着色器glsl编写 .mp4  24.34M, Z# U8 G3 ]9 m- k1 m
|   ├──7 shader初始化完成并编译顶点和片元着色器代码 .mp4  21.85M
! U; q9 L) ?4 T9 ^6 m|   ├──8 program渲染程序初始化给shader传递顶点和材质顶点 .mp4  30.67M
& ]8 `  ?' K/ H|   └──9 opengl的yuv纹理的创建和初始化 .mp4  32.25M2 D& k- u$ p. w! P6 H
├──9 视频播放器项目实战-需求和设计模式  ( y$ m/ L5 ?# G. g: S+ ]- `
|   ├──1 视频播放器项目设计说明和UML类图知识讲解 .mp4  18.98M
4 b; d4 L8 [5 x|   ├──2 模块分解和用到的7个设计模式讲解 .mp4  19.33M2 O0 v0 p+ l& @7 h
|   ├──3 适配器 建造者 代理模式讲解 .mp4  23.72M
' S1 X( E/ e0 s' N' b4 A2 v|   ├──4 门面模式 生产者消费者模式 .mp4  10.98M4 M% `) x( _$ `) r* W  z# Y
|   ├──5 Observer观察者模式讲解和应用 .mp4  7.66M" [' ^1 ~9 Y, d4 Z
|   └──6 解码显示帧数据处理顺序图和开发计划讲解 .mp4  11.65M  ?6 g1 h" R7 C8 C- h  ?2 C
└──FFmpeg安卓流媒体播放器开发实战视频课程-基于NDK、C  和FFmpegAndroid .zip  3.27G
' F* b% L. \7 W1 ?! b$ Q" y
6 M- C6 M; T* h5 d4 ]  _$ ^4 O2 v6 Q7 c. a$ r
, E" O1 v) X) T) z- y
资源下载地址和密码(百度云盘):
游客,如果您要查看本帖隐藏内容请回复
[/hide] 百度网盘信息回帖可见
6 H" V) k: }/ \8 r, {1 C) t/ w8 C5 m

! P# ?! V3 s+ M; O
( w5 j6 Y( r2 m" q' K本资源由Java自学网收集整理【www.javazx.com】
回复

使用道具 举报

该用户从未签到

4

主题

150

帖子

282

积分

普通会员

Rank: 2

积分
282
发表于 2022-12-14 22:46:06 | 显示全部楼层
看到这帖子真是高兴!
回复 支持 反对

使用道具 举报

  • TA的每日心情

    2021-5-19 02:30
  • 签到天数: 8 天

    [LV.3]初窥堂奥

    0

    主题

    39

    帖子

    30万

    积分

    终身VIP

    Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60

    积分
    300258
    发表于 2022-12-17 09:33:53 | 显示全部楼层
    度网盘信息回帖可见
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2017-8-31 17:43
  • 签到天数: 1 天

    [LV.1]初学乍练

    0

    主题

    4218

    帖子

    8445

    积分

    普通会员

    Rank: 2

    积分
    8445
    发表于 2022-12-17 16:58:19 | 显示全部楼层
    学习编程好地方 加油
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2015-8-22 09:54
  • 签到天数: 3 天

    [LV.2]登堂入室

    0

    主题

    4024

    帖子

    8099

    积分

    普通会员

    Rank: 2

    积分
    8099
    发表于 2022-12-28 18:57:48 | 显示全部楼层
    可以看 不错
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    4065

    帖子

    8132

    积分

    普通会员

    Rank: 2

    积分
    8132
    发表于 2023-1-13 13:34:41 | 显示全部楼层
    it视频教程给力
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    4180

    帖子

    8362

    积分

    普通会员

    Rank: 2

    积分
    8362
    发表于 2023-1-23 06:41:38 | 显示全部楼层
    好资源
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    4057

    帖子

    8116

    积分

    普通会员

    Rank: 2

    积分
    8116
    发表于 2023-2-1 07:00:10 | 显示全部楼层
    非常好,顶一下
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2015-4-29 07:28
  • 签到天数: 9 天

    [LV.3]初窥堂奥

    0

    主题

    4186

    帖子

    8554

    积分

    普通会员

    Rank: 2

    积分
    8554
    发表于 2023-2-21 14:00:33 | 显示全部楼层
    前排顶,很好!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    4116

    帖子

    8234

    积分

    普通会员

    Rank: 2

    积分
    8234
    发表于 2023-3-14 12:27:50 | 显示全部楼层
    不错啊啊啊啊啊啊
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|Java自学网

    GMT+8, 2024-11-24 03:29 , Processed in 0.133352 second(s), 26 queries .

    Powered by Javazx

    Copyright © 2012-2022, Javazx Cloud.

    快速回复 返回顶部 返回列表