Java自学网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10277|回复: 108

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

  [复制链接]

该用户从未签到

6

主题

152

帖子

306

积分

普通会员

Rank: 2

积分
306
发表于 2022-12-14 22:00:01 | 显示全部楼层 |阅读模式
220002hz8tn0s1qzest131.png - Z8 q3 G  G( F/ y1 J0 N

% a# S# C3 T/ h! bFFmpeg安卓流媒体播放器开发实战-基于NDK C++和 FFmpeg Android
/ c  R& {0 K  k8 x7 t2 \├──1 课程介绍及音视频基础知识  ' y; z/ {# T" L  _; ?8 R
|   ├──1 课程介绍 .mp4  52.05M
# B+ O  ?" V/ o* @( n# }" G& G: K|   ├──2 音视频基础知识Mpeg4封装格式音视频编码格式讲解 .mp4  18.21M- H+ T% e( `8 T9 p
|   ├──3 音视频解封装和解码原理分析 .mp4  26.14M5 D+ j  e4 Z% ?) ~0 D
|   ├──4 图形像素格式RGB和YUV格式分析 .mp4  21.94M; S, d( g" @; q
|   ├──5 PCM音频采样率 通道 planar等格式参数分析 .mp4  13.89M- C9 l2 \3 Z+ p4 _5 g" [
|   └──6 MP4标准和h264格式的NAL的GOP分析 .mp4  23.64M
" A5 B! u  D3 S- J5 D6 Q( x├──10 视频播放器项目实战-音视频解码解封装  
/ b! f+ z& }0 d  O6 g) o|   ├──1 项目创建权限ABI和CMake相关库和头文件配置 .mp4  18.08M
  p, O* x5 @3 r( G% N) Z|   ├──10 添加IDemux的GetVPara获取视频XParamter .mp4  10.71M0 b2 P* H+ Z" Z
|   ├──11 封装FFDecode解码的Send和Recv接口 .mp4  24.75M! d" F; j3 m2 P8 o* C) S% Z
|   ├──12 读取媒体帧数据获取类型信息(音频 视频)存入XData .mp4  15.05M
8 l  H; ^0 F$ `* \: e|   ├──13 完成音视频解码和并重构解码器加入观察者模式 .mp4  20.57M
$ O, l2 S2 N0 }8 M9 @  n+ K|   ├──14 加入生产者消费者模式控制音视频缓冲 .mp4  33.18M; H% i# o1 C2 M" G# m
|   ├──2 创建安卓流媒体播放器XPlay项目并配置添加了解封装模块代码 .mp4  25.87M1 K( a! E: N! }9 C$ B
|   ├──3 FFDemux的Open实现打开媒体文件 .mp4  27.96M
1 d" t1 k$ s7 H: P|   ├──4 FFdemux的Read读取帧数据接口编写 .mp4  19.53M
, }# M) h7 t6 K4 m$ y|   ├──5 完成XThread线程类IDemux继承后在线程中读取帧数据 .mp4  23.92M
  c+ \) E7 `1 _3 y: M|   ├──6 添加了XSleep完成XThread线程函数的停止和超时判断 .mp4  16.88M$ D; E) \6 @+ I, h5 F; p2 u) Y+ f
|   ├──7 观察者Observer模式的代码实现并使用IDemux测试 .mp4  24.30M
- k' ?* r: T. O$ f$ Z( q|   ├──8 IDecode和FFDecode模块代码创建 .mp4  17.15M
" z& U1 R5 J- F6 I|   └──9 FFDecode的Open打开解码器接口编写Observer .mp4  17.81M
9 n6 c5 S: ]6 u8 Q├──11 视频播放器项目实战-音视频播放  # A+ K" L$ L( l' ~$ r; z9 d/ i6 v
|   ├──1 IVideoView显示模块架构讲解和代码创建 .mp4  40.02M
- ^+ E, E; x3 ~|   ├──10 SLAudioPlay音频播放完成并测试对MP4文件音视频播 .mp4  24.13M
" [1 F5 V) Y- i/ Q+ S|   ├──11 完成硬解码并完成NV21和NV12格式的shader显示编写 .mp4  90.35M
. F1 T6 J0 v) A, u|   ├──12 解决android8.0下opengles不能播放的问题 .mp4  12.41M
5 q; o+ d9 @- [9 @- H$ y|   ├──2 IEGL类初始化封装java部分添加XPlay窗口类 .mp4  49.96M
& @' }9 D( ]" g; v|   ├──3 XShader基于yuv420p的初始化Init代码完成并测 .mp4  37.07M! ^* x- A# u6 `  r. V& E" w6 I
|   ├──4 XTexture初始化并完成GLVideoView的调用 .mp4  30.44M  v5 }" ]* f6 r/ `, S" K. \
|   ├──5 GLVideoView完成使用shader显示视频 .mp4  68.41M" W" U, C( G0 Q9 ^5 [) j) F6 y) |
|   ├──6 完成音频重采样IResample模块初始化代码 .mp4  23.69M" |: [7 u; ~$ y  u
|   ├──7 完成音频重采样IResample模块的处理功能 .mp4  55.16M4 E/ y. e- s3 O. ]# V3 ^6 T- c
|   ├──8 完成了IAudioPlay和SLAudioPlay的音频播放 .mp4  63.88M5 r4 O$ @# q$ Z  a1 z" i6 y
|   └──9 IAudioPlay的Update将音频压入缓冲队列并测试 .mp4  24.93M
. A  \4 H6 _, X/ J, d0 m7 n├──12 视频播放器项目实战-完成架构解决同步和seek  & S( s4 E5 N: X. I: T
|   ├──1 完成facade模式的IPlayer并实现Open接口 .mp4  63.39M
; ^, k$ q& d. T" }|   ├──10 XShader线程安全处理和Close清理函数编写 .mp4  22.69M5 `: d8 R0 ^& M# X0 `! W0 v/ z$ G
|   ├──11 XTexture和GLVideoView的线程安全和清理函数 .mp4  20.64M: F4 z# B; v6 ]2 F" v4 `: c
|   ├──12 IPlayer完成Close清理函数编写并完成多次打开视频 .mp4  42.00M
6 x$ S+ [, d8 H1 P; j3 ?|   ├──13 添加打开视频按钮和进度滑动条并响应打开事件 .mp4  22.79M
9 y* F  |$ ]( x( p. b|   ├──14 添加视频打开路径和香港卫视rtmp打开路径的界面 .mp4  14.65M
2 W) K" `' E8 C/ B" [$ Q|   ├──15 完成通过界面多次打开视频文件 修正了多次打开显示出现的bug .mp4  34.00M
8 {+ l* p" o3 ]5 l! q9 T|   ├──16 在835cpu的手机中测试并修正了音频播放Close的bug .mp4  27.18M% r$ I2 W- r# _, L+ T# S, O
|   ├──17 完成了播放进度的显示并修正了硬解码参数传递错误 .mp4  40.71M
0 j  o, W4 }9 c- q' g|   ├──18 滑动条拖动Seek视频开发策略详细分析 .mp4  12.94M
# g) u. Y6 W& @* X9 N|   ├──19 完成了IDemux的Seek和界面SeekBar的事件响应 .mp4  38.32M
) P, b0 l; t3 {0 H% a|   ├──2 完成Iplayer开始播放和窗口初始化接口 .mp4  21.66M
. f% ~5 K& Z' ~|   ├──20 添加了视频播放的暂停和恢复 .mp4  41.10M
$ S7 P7 f4 ~1 r( }8 C7 i9 l|   ├──21 修改了视频播放到结尾再次打开会锁死的bug .mp4  23.66M' e& B9 k8 E% i; d% d' H3 ]
|   ├──22 通过手动解码帧数据完成了IPlayer控制视频播放进度的功能 .mp4  40.77M9 Z7 H2 e  Q3 x
|   ├──3 完成Builder模式的IPlayerBuilder构建IP .mp4  66.77M# x5 \- l7 B* Y% Y7 a
|   ├──4 完成IPlayerProxy代理模式并进行测试架构搭建完成 .mp4  30.76M
: Y( S8 b5 p6 `5 Z$ F3 D|   ├──5 统一换算pts为毫秒使用IPlayer完成音视频同步播放 .mp4  60.93M. _1 _2 c: `1 x
|   ├──6 IDemux&FFdemux线程安全和Close清理函数编写 .mp4  17.59M% W& u( ]/ O% ~) Z8 j* O
|   ├──7 FFdecode和FFResample线程安全处理Close .mp4  29.05M. H+ m1 B! F$ I* B( c, ]+ @4 J! b
|   ├──8 SLAudioPlay的线程安全处理和Close清理函数编写 .mp4  30.07M
$ [+ C1 |' Q' J; W5 I% `" y|   └──9 XEGL的线程安全处理和Close清理函数编写 .mp4  17.99M: l6 M3 n% `. _  ~
├──2 AndroidStudio开发工具和开发环境准备  
( @8 ?- l' P9 ?; Q|   ├──1 开发所用到的工具和sdk介绍 .mp4  10.05M4 z2 l; x: Y2 m; Q& m% o$ s; _
|   ├──2 AndroidStudio开发工具安装使用讲解 .mp4  24.92M
7 G, f8 `# c* m4 L/ J$ x$ ~$ {) {|   ├──3 Android SDK目录内容分析 .mp4  11.02M  ]' \5 j% i1 L: ]
|   ├──4 AndroidNDK工具目录功能分析 .mp4  9.11M
5 c8 d3 f. @. @7 L. l# V" [|   └──5 安卓模拟器安装和第一个c++安卓程序编译运行 .mp4  48.49M* c) e/ d+ c9 p) q! U( O
├──3 Android NDK交叉编译FFMpeg并添加测试AS项目  ) k( ~' ?7 U- d7 ]6 h0 f6 s
|   ├──1 安卓NDK相关概念ABI NEON JNI和CMAKE分析 .mp4  18.74M9 T' ~8 D  A' ^9 E# i' ?
|   ├──10 JNI和c传递文件路径并设置app的读写权限 .mp4  34.82M+ q1 K& q( h- N6 u, p, Q3 Y
|   ├──2 NDK中CPU的应用二进制界面ABI .mp4  14.11M
9 h/ M9 N" {' a4 F|   ├──3 ubuntu虚拟机及常用工具安装并配置samba共享目录 .mp4  37.44M
1 I) Q1 t, o1 k- l|   ├──4 ffmpeg源码下载在android下的编译参数分析讲解 .mp4  20.62M
$ c  W6 U: }2 T, I|   ├──5 在ubuntu下交叉编译ffmpeg的android版本库 .mp4  47.01M
" `8 ^, b6 U( t3 Z8 Y7 z, l|   ├──6 ffmpeg通用编译bash脚本编写 硬解码 neon 多线 .mp4  55.33M
2 I' h, E$ B) J2 K7 S|   ├──7 AndroidStudio项目配置权限 jni库路径 ABI .mp4  12.66M
$ A4 P) C3 v8 r2 ^' f& `5 i|   ├──8 cmake配置(导入库 头文件 链接)分析 .mp4  17.59M
0 P# U) u. k" C|   └──9 创建支持ffmpeg的AndroidStudio项目并调用 .mp4  44.82M+ O" w- w0 l! ~
├──4 FFmpeg解封装(C++ NDK)  
  ]8 l  c' m8 [2 Y|   ├──1 ffmpeg SDK软硬解码流程说明 .mp4  7.20M
5 i& M2 V8 f8 k9 h$ X- p|   ├──10 AVPacket结构解析空间申请 初始化 复制 引用计数函数 .mp4  14.90M; v3 v# X+ `9 k
|   ├──11 av_seek_frame改变播放进度函数详解 .mp4  12.31M/ L! `7 F6 y1 O; q9 K
|   ├──12 av_read_frame和av_seek_frame代码 .mp4  20.68M9 v- R1 i) {# k1 E* b
|   ├──2 ffmpeg音视频解封装用到的函数和结构体详解 .mp4  13.96M/ X% c+ L( U! u
|   ├──3 avformat_open_input函数详解并示例打开mp .mp4  37.00M
3 d- R) H) Y6 e|   ├──4 AVFormatContext结构分析和清理代码示例 .mp4  13.87M
3 f, W5 D5 B% F4 c- h( ]/ o9 r9 B|   ├──5 avformat_find_stream_info探测 .mp4  18.08M
+ F) a2 [2 E  ], X! g8 K0 t|   ├──6 AVStream和AVCodecParameters分析 .mp4  22.42M
1 [4 T3 f0 j' r: J( @|   ├──7 通过遍历获取AVStream音视频流信息并打印参数 .mp4  31.77M
3 m" q6 K8 u! t% [) J% }|   ├──8 通过av_find_best_stream获取音视频流索引 .mp4  7.86M
+ ?# @, O! u* L' N  _* r( a8 [|   └──9 av_read_frame读取帧数据函数分析和产生的空间问题 .mp4  9.46M
# }! E0 A: w4 K# X6 j. a# A. R/ l├──5 FFmpeg软硬解和多线程解码(C++ NDK)  " V3 e- A; o' K* D6 P
|   ├──1 AVCodecContext解码上下文初始化讲解和视频解码器 .mp4  34.00M& R: r4 a& a& H0 r
|   ├──2 打开音频解码器上下文 .mp4  11.79M7 ^: R7 P) Q2 L
|   ├──3 AVFrame格式解析和空间处理函数 .mp4  13.84M
5 j, `' N+ V9 j, {' V|   ├──4 avcodec_send_packet和receive .mp4  10.93M
% _, w0 p, B, s  Q|   ├──5 音视频多线程解码代码演示 .mp4  17.96M8 F1 Z: b8 K* k2 ]0 N
|   ├──6 音视频解码性能测试neon单线程和八线程解码测试代码 .mp4  27.32M6 h  p8 _  F5 z
|   └──7 ffmpeg调用MediaCodec实现硬解码代码演示 .mp4  9.26M( B: Q6 w7 N( D. f& p. m/ [% K
├──6 FFMpeg音频重采样和视频格式转换和显示  - {2 {9 d- F" Y
|   ├──1 sws_getContext和sws_scale像素格式 .mp4  18.95M# S. l/ u  e/ G% l1 X8 \9 s
|   ├──2 sws_scale像素格式转换代码演示 .mp4  33.30M# m7 ]! x. X! [' B. J
|   ├──3 音频重采样SwrContext格式和swr_convert .mp4  7.85M
1 |& W3 e! E5 Z( U' Y|   ├──4 swr_init音频重采样上下文初始化和swr_conver .mp4  33.73M
7 n3 v  E' b7 \# t  w|   ├──5 分析GLSurfaceView和NDK接口直接显示RGB视频 .mp4  14.97M% B% X  k5 ]/ L! d8 g
|   ├──6 使用NDK通过GLSurfaceView双缓冲空间复制完成视 .mp4  54.51M5 @- c4 y: }" I7 D% H
|   └──7 安卓视频播放窗口去掉标题栏 全屏 横屏 .mp4  21.23M
8 H6 Z5 O9 E$ X! r* a: S( G. ]├──7 OpenSLES音频播放  
* i& P, b2 F- ^* C' f/ D2 l|   ├──1 OpenSLES播放音频步骤和接口讲解 .mp4  30.37M3 {6 L. K" e- x3 F# U0 B! P
|   ├──2 创建OpenSLES音频播放测试项目并完成引擎初始化 .mp4  23.14M  ]6 E, X5 W( y& z* h
|   ├──3 完成OpenSLES混音器CreateOutputMix初始 .mp4  11.20M
6 \  U$ j9 H0 q$ e|   ├──4 配置OpenSL的PCM音频输入格式 .mp4  8.39M
) Y7 `' D9 q5 D|   └──5 读取pcm音频文件并使用OpenSL播放 .mp4  46.00M
: K+ E9 s2 U9 g7 U├──8 EGL和OpenGLES Shader显示YUV视频  2 `( h6 ^) |: k* F9 |# q- ^' h
|   ├──1 egl和opengl_shader_glsl讲解 .mp4  19.71M
! v/ I  m  A7 C" q+ j|   ├──10 OpenglES纹理数据修改和显示 .mp4  18.25M
" O* {# |& y1 Z1 k( c& Z4 {|   ├──11 通过OpenglES纹理修改完成yuv文件的播放显示 .mp4  11.14M
. e/ u2 Q5 k' A2 f; V; E( I+ h|   ├──2 testopengles_shader项目配置和创建 .mp4  21.83M' Q6 K0 j; `: @0 G
|   ├──3 NDKC++完成EGL display surface .mp4  36.51M3 o+ l2 G' a9 U" N! `  D5 i* h
|   ├──4 Opengl ES Shader顶点坐标和材质坐标分析 .mp4  15.69M
" [9 J& v! {: p- e|   ├──5 顶点着色器代码glsl代码编写 .mp4  12.33M
$ H' c+ x( @; F8 ~( u& U|   ├──6 yuv420p片元着色器glsl编写 .mp4  24.34M! o5 O7 x4 J/ e) E# D, K; J
|   ├──7 shader初始化完成并编译顶点和片元着色器代码 .mp4  21.85M) W1 T3 H- Y7 d+ I1 |* q9 U" G% m3 h
|   ├──8 program渲染程序初始化给shader传递顶点和材质顶点 .mp4  30.67M
% F7 n9 E1 v4 x! o4 `3 h|   └──9 opengl的yuv纹理的创建和初始化 .mp4  32.25M
% q, w* E. z$ u0 c" \├──9 视频播放器项目实战-需求和设计模式  
2 ?5 l9 _8 J2 s& Z6 n|   ├──1 视频播放器项目设计说明和UML类图知识讲解 .mp4  18.98M
. Z1 K" O2 i3 N. y, b  V8 N|   ├──2 模块分解和用到的7个设计模式讲解 .mp4  19.33M
: Q3 U+ ?8 g( E( d. T|   ├──3 适配器 建造者 代理模式讲解 .mp4  23.72M
7 ?% R; f& m0 _8 A0 q! w$ w|   ├──4 门面模式 生产者消费者模式 .mp4  10.98M
" ]8 J! |- p; ]6 q6 f$ Y|   ├──5 Observer观察者模式讲解和应用 .mp4  7.66M
7 G9 z$ k4 \* w9 P' v|   └──6 解码显示帧数据处理顺序图和开发计划讲解 .mp4  11.65M2 y( \& a+ l3 K9 |, ^* r
└──FFmpeg安卓流媒体播放器开发实战视频课程-基于NDK、C  和FFmpegAndroid .zip  3.27G
7 x  }7 ?" Y# S, A9 I# b( Y( g9 {- [  U- L

6 I6 h% c3 r* S# b8 X- l, @6 T4 w( h" [$ f* s* }0 l
资源下载地址和密码(百度云盘):
游客,如果您要查看本帖隐藏内容请回复
[/hide] 百度网盘信息回帖可见
6 b) j6 a: r1 A, a* M+ J+ i; @: Q7 S3 Q- m
% V- c8 V9 x6 G% C. J1 P& G
0 C1 F- _9 R1 _  d
本资源由Java自学网收集整理【www.javazx.com】
回复

使用道具 举报

该用户从未签到

4

主题

159

帖子

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

    主题

    4583

    帖子

    9175

    积分

    普通会员

    Rank: 2

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

    使用道具 举报

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

    [LV.2]登堂入室

    0

    主题

    4391

    帖子

    8833

    积分

    普通会员

    Rank: 2

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

    使用道具 举报

    该用户从未签到

    0

    主题

    4407

    帖子

    8816

    积分

    普通会员

    Rank: 2

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

    使用道具 举报

    该用户从未签到

    0

    主题

    4538

    帖子

    9078

    积分

    普通会员

    Rank: 2

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

    使用道具 举报

    该用户从未签到

    0

    主题

    4403

    帖子

    8808

    积分

    普通会员

    Rank: 2

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

    使用道具 举报

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

    [LV.3]初窥堂奥

    0

    主题

    4536

    帖子

    9254

    积分

    普通会员

    Rank: 2

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

    使用道具 举报

    该用户从未签到

    0

    主题

    4453

    帖子

    8908

    积分

    普通会员

    Rank: 2

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

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2025-2-22 18:52 , Processed in 0.129684 second(s), 28 queries .

    Powered by Javazx

    Copyright © 2012-2022, Javazx Cloud.

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