请选择 进入手机版 | 继续访问电脑版

基于NDK/C++/FFmpeg/Android视频(流媒体)播放器开发实战-2019年Udemy

72
回复
34766
查看
  [复制链接]
  • TA的每日心情

    昨天 09:33
  • 签到天数: 671 天

    [LV.9]以坛为家II

    1701

    主题

    2519

    帖子

    18万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    183952
    发表于 2019-5-11 12:30:45 | 显示全部楼层 |阅读模式
    基于NDK/C++/FFmpeg/Android视频(流媒体)播放器开发实战-2019年Udemy

    基于NDK/C++/FFmpeg/Android视频(流媒体)播放器开发实战-2019年Udemy


    〖课程介绍〗:
    适用人群:) E8 x4 z3 F# x+ n& Q) I
                    掌握c++基础语法,想要学习android平台编程,或者想要实践NDK编程的同学,想要学习音视频技术的同学* n# v: B3 _  [- B; L9 N

            课程概述:
                    Android影音(流媒体)播放器开发实战基于NDK、C++和FFmpeg8 r/ m, J) a0 ~7 F" ^( M! {
    $ F: U0 N3 h# n' n5 H; W* H6 P
            对学员要求:' f  g' B" j, v, h! }7 g9 k5 g
                    本课程是具有很强实战性的应用编程,课程中会从原理讲解到代码实现,但由于项目有一定复杂度,希望学习本课程的同学要掌握c++的基本语法,课程中也用到java的代码但比较少,如果是c++程序员可以把我的java代码直接拿过去用,不一定要有java编程基础。
    " [  B, Z- X) n7 P! s
            课程说明:4 O" Y% X: s+ |9 N5 O3 ^
                    课程包含了对流媒体(拉流)的播放,演示了播放rtmp的香港卫视,支持rtsp摄像头和http网络视频的播放,支持访问本地的视频文件,并精确控制播放进度。8 m4 B& b  `7 D, n) k

            课程特色:$ Z" m8 n( }0 A, `, _" i
                    1 课程由浅入深,原理讲解+代码实操演示,并提供全部课程源码
                    2 讲解如何编译Android平台的ffmpeg库,使其支持neon和硬解码,并测试性能" B+ D+ c4 w2 Z$ c* z# s
                    3 使用opengles的NDK shader高效播放yuv视频,不耗费cpu性能更优
                    4 代码支持硬解码(省电不耗cpu)和多线程解码(高性能每秒解码240帧1080p)
                    5 支持网络流媒体(rtmp,rtsp,http)可以直接拉流播放电视并支持rtsp摄像头访问
                    6 使用opensles NDK 原生接口播放音频,不依赖第三方库
                    7 课程将设计模式应用到实践-观察者、构建者、门面、代理、适配器、单件、和生产者消费者。
    〖课程目录〗:

            章节1:课程介绍及音视频基础知识
            课时1课程介绍18:065 s) w  Y8 q- g. q* M% Z
            课时2音视频基础知识Mpeg4封装格式音视频编码格式讲解10:15( H5 m8 |0 M" W) ]9 |1 P$ H* z
            课时3音视频解封装和解码原理分析18:013 M8 e% K3 c0 L4 K( J5 Q" U% }: \0 O
            课时4图形像素格式RGB和YUV格式分析15:36
            课时5PCM音频采样率_通道_planar等格式参数分析08:37
            课时6MP4标准和h264格式的NAL的GOP分析15:53' Y0 K  D5 T" e
            章节2:AndroidStudio开发工具和开发环境准备1 X* s; G0 U6 ]. Y/ D4 L7 T
            课时7开发所用到的工具和sdk介绍07:29& ~7 T8 S, E  w% H; o; U* h% {- c
            课时8AndroidStudio开发工具安装使用讲解09:22* m0 o, ]. C" D8 }
            课时9Android SDK目录内容分析04:59
            课时10AndroidNDK工具目录功能分析05:43
            课时11安卓模拟器安装和第一个c++安卓程序编译运行08:414 F( T. V6 R; b( o% r7 x
            章节3:Android NDK交叉编译FFMpeg" }, G: ^, |2 X7 e& K' m6 t
            课时12安卓NDK相关概念ABI、NEON、JNI和CMAKE分析12:32
            课时13NDK中CPU的应用二进制界面ABI09:004 L+ ?; B; u, r( z- C# k% F! {. G
            课时14ubuntu虚拟机及常用工具安装并配置samba共享目录19:109 C% \. l9 x5 e& g" g  V0 c
            课时15ffmpeg源码下载在android下的编译参数分析讲解12:46! r4 T* O# @; }3 l5 v7 o! D
            课时16在ubuntu下交叉编译ffmpeg的android版本库20:28  V" M0 o/ K5 t0 S& u3 \8 R
            课时17ffmpeg通用编译bash脚本编写、硬解码、neon、多线程解码性能对比24:19
            课时18AndroidStudio项目配置权限、jni库路径、ABI和CMake参数和讲解07:56
            课时19cmake配置(导入库、头文件、链接)分析10:446 @* z& {( C6 C: w& j- F
            课时20创建支持ffmpeg的AndroidStudio项目并调用接口在界面显示库配置24:19) f  n7 X  d9 o6 v+ d9 ?
            课时21JNI和c传递文件路径并设置app的读写权限17:51
            章节4:FFmpeg解封装(C++ NDK)
            课时22ffmpeg SDK软硬解码流程说明05:084 G. n4 K! o3 R; O  t
            课时23ffmpeg音视频解封装用到的函数和结构体详解10:11
            课时24avformat_open_input函数详解并示例打开mp4文件17:54
            课时25AVFormatContext结构分析和清理代码示例08:23
            课时26avformat_find_stream_info探测获取封装上下文的格式信息09:04- M+ P. x6 y9 E6 d+ R& h  O
            课时27AVStream和AVCodecParameters分析13:16
            课时28通过遍历获取AVStream音视频流信息并打印参数16:08
            课时29通过av_find_best_stream获取音视频流索引04:23
            课时30av_read_frame读取帧数据函数分析和产生的空间问题分析07:065 S0 D# m% e, }
            课时31AVPacket结构解析空间申请-初始化-复制-引用计数函数讲解10:27
            课时32av_seek_frame改变播放进度函数详解08:37& _! N! o- r2 Y. L& c% ]
            课时33av_read_frame和av_seek_frame代码示例并分析内存占用和清理情况10:03
            章节5:FFmpeg软硬解和多线程解码(C++ NDK)
            课时34AVCodecContext解码上下文初始化讲解和视频解码器打开的代码演示19:32
            课时35打开音频解码器上下文05:14+ R9 v! [  }+ s& t! O" q2 c
            课时36AVFrame格式解析和空间处理函数09:37
            课时37avcodec_send_packet和avcodec_receive_frame函数讲解.07:22
            课时38音视频多线程解码代码演示09:06; q9 ~1 Y5 l/ i
            课时39音视频解码性能测试neon单线程和八线程解码测试代码13:56
            课时40ffmpeg调用MediaCodec实现硬解码代码演示04:55! D0 y% _5 ?+ b
            章节6:FFMpeg音频重采样和视频格式转换和显示
            课时41sws_getContext和sws_scale像素格式和尺寸转换函数讲解12:43
            课时42sws_scale像素格式转换代码演示15:45
            课时43音频重采样SwrContext格式和swr_convert相关函数详解05:17
            课时44swr_init音频重采样上下文初始化和swr_convert音频重采样代码17:08
            课时45分析GLSurfaceView和NDK接口直接显示RGB视频数据相关函数09:34
            课时46使用NDK通过GLSurfaceView双缓冲空间复制完成视频的播放22:316 H3 Q7 O% y$ [+ R' `" P: A
            课时47安卓视频播放窗口去掉标题栏、全屏、横屏06:42
            章节7:OpenSLES音频播放5 }/ H% I1 Q7 P; u. z6 M( K. H
            课时48OpenSLES播放音频步骤和接口讲解19:347 M+ A4 c; O! u2 _
            课时49创建OpenSLES音频播放测试项目并完成引擎初始化12:164 |8 }- E  C8 N
            课时50完成OpenSLES混音器CreateOutputMix初始化06:118 M/ T* P; H! R1 O9 y2 m
            课时51配置OpenSL的PCM音频输入格式04:39& o/ N% O- ?8 m/ k6 ?+ u. p% j
            课时52读取pcm音频文件并使用OpenSL播放23:41
            章节8:EGL和OpenGLES Shader显示YUV视频4 x' `; ?  Z- Q( z4 m" w1 W
            课时53egl和opengl_shader_glsl讲解13:55- s  z8 [. Q* F/ U8 m
            课时54testopengles_shader项目配置和创建_完成java部分代码11:47
            课时55使用NDKC++完成EGL、display、surface、contex配置和初始化20:21
            课时56Opengl ES Shader顶点坐标和材质坐标分析10:52
            课时57顶点着色器代码glsl代码编写07:01
            课时58yuv420p片元着色器glsl编写14:220 h9 Z7 _3 U* g: g! H0 J
            课时59shader初始化完成并编译顶点和片元着色器代码11:40/ A9 A2 q7 D2 U5 A  ^- n
            课时60program渲染程序初始化给shader传递顶点和材质顶点数据16:05. H+ j4 r6 \7 ?0 S0 D! B/ p
            课时61opengl的yuv纹理的创建和初始化18:06
            课时62OpenglES纹理数据修改和显示09:16
            课时63通过OpenglES纹理修改完成yuv文件的播放显示05:22
            章节9:视频播放器项目实战1-需求和设计模式! _  Z6 b" ]4 I+ a' n5 ]
            课时64视频播放器项目设计说明和UML类图知识讲解13:28
            课时65模块分解和用到的7个设计模式讲解13:31
            课时66适配器、建造者、代理模式讲解14:160 ], l; o- e4 J
            课时67门面模式&生产者消费者模式07:11) E7 v; j' X0 K5 Q+ A( T9 o% F
            课时68Observer观察者模式讲解和应用05:18. _3 T3 i1 j* e9 O
            课时69解码显示帧数据处理顺序图和开发计划讲解07:096 p( r$ q( b/ A, o3 v% s
            章节10:视频播放器项目实战二 音视频解码解封装. S6 `* r4 f- k( r
            课时70项目创建权限ABI和CMake相关库和头文件配置09:17: i) P& s$ f3 t- j  H( m: Y" `
            课时71创建安卓流媒体播放器XPlay项目并配置添加了解封装模块及日志类14:29
            课时72FFDemux的Open实现打开媒体文件16:267 r8 V  ]4 k! t
            课时73FFdemux的Read读取帧数据接口编写11:21. b$ j) x2 f( g
            课时74完成XThread线程类IDemux继承后在线程中读取帧数据13:57/ y+ S' g" C/ d
            课时75添加了XSleep完成XThread线程函数的停止和超时判断09:53, w8 W0 ?8 g8 Y& ^) s4 G4 o# ]
            课时76观察者Observer模式的代码实现并使用IDemux进行测试14:11
            课时77IDecode和FFDecode模块代码创建09:58
            课时78FFDecode的Open打开解码器接口编写和Observer基类添加10:07
            课时79添加IDemux的GetVPara获取视频XParamter参数接口用IDecode的Open05:55  s( {# n) R+ `5 `
            课时80封装FFDecode解码的Send和Recv接口14:02( ^6 W: W) ?# {% l* I# @+ u" J
            课时81读取媒体帧数据获取类型信息(音频、视频)存入XData08:13
            课时82完成音视频解码和并重构解码器加入观察者模式12:13
            课时83加入生产者消费者模式控制音视频缓冲19:14
            章节11:视频播放器项目实战三 音视频播放
            课时84IVideoView显示模块架构讲解和代码创建16:27
            课时85IEGL类初始化封装java部分添加XPlay窗口类19:28
            课时86XShader基于yuv420p的初始化Init代码完成并测试13:46  y7 G* t. W% m% d# G8 p9 s
            课时87XTexture初始化并完成GLVideoView的调用14:06! t, C! L0 ?1 @  f
            课时88GLVideoView完成使用shader显示视频27:49
            课时89完成音频重采样IResample模块初始化代码09:40
            课时90完成音频重采样IResample模块的处理功能22:23# W3 v% a; m& L/ S; E
            课时91完成了IAudioPlay和SLAudioPlay的音频播放环境初始化32:09
            课时92IAudioPlay的Update将音频压入缓冲队列并测试09:44
            课时93SLAudioPlay音频播放完成并测试对MP4文件音视频播放09:531 P. t: M, c  U/ L$ O) H. e
            课时94完成硬解码并完成NV21和NV12格式的shader显示编写35:327 {+ K# S+ [$ L: s, c
            课时95解决android8.0下opengles不能播放的问题和音频播放的回音问题04:32
            章节12:频播放器项目实战四 完成架构解决同步和seek8 A& x& [* V2 O* N
            课时96完成facade模式的IPlayer并实现Open接口.26:26
            课时97完成Iplayer开始播放和窗口初始化接口08:30( P1 k4 T6 }/ p7 f
            课时98完成Builder模式的IPlayerBuilder构建IPlayer对象26:38
            课时99完成IPlayerProxy代理模式并进行测试架构搭建完成12:19
            课时100统一换算pts为毫秒使用IPlayer完成音视频同步播放25:41
            课时101IDemux&FFdemux线程安全和Close清理函数编写07:00
            课时102FFdecode和FFResample线程安全处理和Close清理函数编写10:44, G+ M0 H1 A- y3 c1 S- w6 a3 b( N
            课时103SLAudioPlay的线程安全处理和Close清理函数编写11:25
            课时104XEGL的线程安全处理和Close清理函数编写06:47
            课时105XShader线程安全处理和Close清理函数编写08:016 k) A9 I9 @  w+ ~" Y8 C
            课时106XTexture和GLVideoView的线程安全和清理函数编写07:571 C) G7 Z- `- T2 V# ]9 _# r+ f* R: h
            课时107IPlayer完成Close清理函数编写并完成多次打开视频文件的测试17:03* N0 A. z$ q3 J0 S  c* k
            课时108添加打开视频按钮和进度滑动条并响应打开事件08:32$ w! V; O: }% u( D% e* J0 M7 |
            课时109添加视频打开路径和香港卫视rtmp打开路径的界面05:29
            课时110完成通过界面多次打开视频文件,修正了多次打开显示出现的bug12:22, N- M2 h8 X' e5 ]: b" c5 R
            课时111在835cpu的手机中测试并修正了音频播放Close的bug09:48  @/ N8 y2 g+ ?: B6 e, {$ @5 G
            课时112完成了播放进度的显示并修正了硬解码参数传递错误16:43
            课时113滑动条拖动Seek视频开发策略详细分析07:08
            课时114完成了IDemux的Seek和界面SeekBar的事件响应14:32; r* F$ z( E1 K# n& s& a! e
            课时115添加了视频播放的暂停和恢复16:291 _: l! R9 M! O6 w
            课时116修改了视频播放到结尾再次打开会锁死的bug08:30
            课时117通过手动解码帧数据完成了IPlayer控制视频播放进度的功能15:31


    百度网盘下载地址〗:


    游客,如果您要查看本帖隐藏内容请回复


    ---------------------------------华丽分割线--------------------------------华丽分割线-------------------华丽分割线-------------------------华丽分割线----------------

    〖下载地址失效反馈〗:
    如果下载地址失效,请尽快反馈给我们,我们尽快修复。反馈地址:https://www.itmsf.com/forum-66-1.html

    〖赞助VIP免学币下载全站资源〗:
    全站资源高清无密,每天更新,vip特权了解一下:https://www.itmsf.com/plugin.php?id=threed_vip

    〖客服24小时咨询〗:
    有任何问题,请点击右侧QQ咨询。

    IT码上发视频网 - 免责声明1、站内所有资源来源于网络用户分享,版权归原作者及其网站所有,本站不拥有此类资源的版权,不对任何资源负法律责任。
    2、本站仅为资源分享的平台,站内资源仅供会员参考和学习之用,不得用于其他非法用途,请下载后24小时内从您的电脑中彻底删除。否则,一切后果请用户自负。
    3、本站会员均可发帖,转载及发布的内容纯属会员个人意见,与本论坛立场无关。严禁在本站发布反动、色情、广告等不良信息及违法内容。
    4、IT码上发视频网作为网络服务提供者,由于网站信息量巨大,对非法转载、盗版行为的发生不具备充分的监控能力。但是当版权拥有者提出侵权指控并出示充分的版权证明材料时,IT码上发视频网负有移除非法转载和盗版内容以及停止继续传播的义务。
    5、IT码上发视频网在满足前款条件下采取移除等相应措施后不为此向原发布人承担违约责任或其他法律责任,包括不承担因侵权指控不成立而给原发布人带来损害的赔偿责任。
    6、IT码上发视频网为用户免费分享产生,如本帖侵犯到任何版权问题,请立即告知本站(1198889304@qq.com),本站将及时予与删除并致以最深的歉意
    7、IT码上发视频网管理员和版主有权不事先通知发贴者而删除本文
    8、凡登陆本网站或直接、间接使用本站资料者,应仔细阅读声明,一旦使用本站任何资源,即被视为您已接受本站的免责声明。
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    昨天 04:35
  • 签到天数: 263 天

    [LV.8]以坛为家I

    13

    主题

    588

    帖子

    3117

    积分

    永久VIP会员

    Rank: 3Rank: 3

    积分
    3117
    发表于 2019-5-11 21:34:37 | 显示全部楼层
    楼主牛逼,这个视频很给力啊!
    回复

    使用道具 举报

  • TA的每日心情
    无聊
    2021-1-14 14:12
  • 签到天数: 17 天

    [LV.4]偶尔看看III

    4

    主题

    25

    帖子

    106

    积分

    新手上路

    Rank: 1

    积分
    106
    发表于 2019-5-21 01:11:42 | 显示全部楼层
    真是难得给力的资源啊!支持【IT码上发视频学习网】!
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2019-6-7 02:03
  • 签到天数: 1 天

    [LV.1]初来乍到

    0

    主题

    2

    帖子

    5

    积分

    新手上路

    Rank: 1

    积分
    5
    发表于 2019-6-7 02:09:18 | 显示全部楼层
    xxfx看到这样的好资源真是高兴!感谢【IT码上发视频学习网】的无私分享!
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2019-7-19 18:07
  • 签到天数: 1 天

    [LV.1]初来乍到

    0

    主题

    2

    帖子

    6

    积分

    新手上路

    Rank: 1

    积分
    6
    发表于 2019-7-19 18:09:28 | 显示全部楼层
    淡定,淡定,淡定……【IT码上发视频学习网】就是这么666!
    回复

    使用道具 举报

  • TA的每日心情
    难过
    2019-7-24 00:23
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    0

    主题

    6

    帖子

    20

    积分

    新手上路

    Rank: 1

    积分
    20
    发表于 2019-7-21 16:29:24 | 显示全部楼层
    强烈支持IT码上发视频学习网,IT码上发视频学习网就是给力!
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2019-7-22 11:40
  • 签到天数: 1 天

    [LV.1]初来乍到

    0

    主题

    3

    帖子

    6

    积分

    新手上路

    Rank: 1

    积分
    6
    发表于 2019-7-22 11:45:01 | 显示全部楼层
    看到这样的好资源真是高兴!感谢【IT码上发视频学习网】的无私分享!
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2020-12-6 09:05
  • 签到天数: 117 天

    [LV.6]常住居民II

    3

    主题

    286

    帖子

    1874

    积分

    永久VIP会员

    Rank: 3Rank: 3

    积分
    1874
    发表于 2019-7-22 17:46:10 | 显示全部楼层
    真是被感动的痛哭流涕……厉害了,我的【IT码上发视频学习网】!
    回复

    使用道具 举报

  • TA的每日心情
    无聊
    2019-7-31 00:10
  • 签到天数: 2 天

    [LV.1]初来乍到

    0

    主题

    4

    帖子

    1018

    积分

    包年VIP

    Rank: 2

    积分
    1018
    发表于 2019-7-31 00:01:39 | 显示全部楼层
    看到这样的好资源真是高兴!感谢【IT码上发视频学习网】的无私分享!
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2019-8-16 21:03
  • 签到天数: 1 天

    [LV.1]初来乍到

    0

    主题

    2

    帖子

    8

    积分

    新手上路

    Rank: 1

    积分
    8
    发表于 2019-8-16 21:05:47 | 显示全部楼层
    2019年的啊,不知道和2018的有什么区别
    回复

    使用道具 举报

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

    本版积分规则

    用心服务IT技术爱好者
    资源涵盖Java,PHP,C/C++,Python,Android,iOS
    微信小程序,人工智能,大数据云计算,web前端
    游戏开发,多媒体与设计,运维相关,产品相关
    等等等有价值的VIP资源
    QQ:1198889304
    周一至周日 9:00-21:00
    意见反馈:1198889304@qq.com

    申明:本站所有资源均来自于互联网用户分享,仅供参考和学习之用,不得传播及用于其他用途,请24小时内自行删除,本站不对任何资源负法律责任。如有侵犯您的版权,请联系客服发邮件到1198889304@qq.com联系删除相关内容!