联系

51CTO 夏老师 FFmpeg安卓流媒体播放器开发实战-基于NDK C++和 FFmpeg Android

资源简介

适合人群:

C++开发者想要学习android平台开发,项目需要音视频处理,想要学习NDK开发实战

课程目标:

学习编译安卓平台的ffmpeg库(支持硬解码和neon),学习ffmpeg的解码解封装接口,学习opensles播放音频,学习opengles、egl、shader、glsl播放yuv视频,学习音视频同步策略,学习将设计模式应用到实际项目中。

课程简介:

课程名称:FFmpeg安卓流媒体播放器开发实战

适用人群:学习c++基础语法

学习本课程的学员要求:

本课程是具有实战性的应用编程,课程中会从原理讲解到代码实现,但由于项目有一定复杂度,希望学习本课程的同学要学习c++的基本语法,课程中也用到java的代码但比较少,如果是c++程序员可以把我的java代码直接拿过去用,不一定要有java编程基础。

课程说明

课程包含了对流媒体(拉流)的播放,演示了播放rtmp,支持rtsp摄像头和http网络视频的播放,支持访问本地的视频文件,并**显示和控制播放进度。

课程特色

1 课程由浅入深,原理讲解+代码实操演示,并提供全部课程源码

2 讲解如何编译Android平台的ffmpeg库,使其支持neon和硬解码,并测试性能

3 使用opengles的NDK shader高效播放yuv视频,不耗费cpu性能更优

4 代码支持硬解码(省电不耗cpu)和多线程解码(高性能每秒解码240帧1080p)

5 支持网络流媒体(rtmp,rtsp,http)可以直接拉流播放电视并支持rtsp摄像头访问

6 使用opensles NDK 原生接口播放音频,不依赖第三方库

7 课程将设计模式应用到实践-观察者、构建者、门面、代理、适配器、单件、和多线程的生产者消费者模式

51CTO 夏老师 FFmpeg安卓流媒体播放器开发实战-基于NDK C++和 FFmpeg Android

资源目录

——/计算机教程/17-51CTO/063-FFmpeg安卓流媒体播放器开发实战-基于NDK C++和 FFmpeg Android/

01 课程介绍及音视频基础知识

1 课程介绍.mp4 52.05M

2 音视频基础知识Mpeg4封装格式音视频编码格式讲解.mp4 18.21M

3 音视频解封装和解码原理分析.mp4 26.14M

4 图形像素格式RGB和YUV格式分析.mp4 21.94M

5 PCM音频采样率 通道 planar等格式参数分析.mp4 13.89M

6 MP4标准和h264格式的NAL的GOP分析.mp4 23.64M

02 AndroidStudio开发工具和开发环境准备

1 开发所用到的工具和sdk介绍.mp4 10.05M

2 AndroidStudio开发工具安装使用讲解.mp4 24.92M

3 Android SDK目录内容分析.mp4 11.02M

4 AndroidNDK工具目录功能分析.mp4 9.11M

5 安卓模拟器安装和第一个c++安卓程序编译运行.mp4 48.49M

03 Android NDK交叉编译FFMpeg并添加测试AS项目

1 安卓NDK相关概念ABI NEON JNI和CMAKE分析.mp4 18.74M

10 JNI和c传递文件路径并设置app的读写权限.mp4 34.82M

2 NDK中CPU的应用二进制界面ABI.mp4 14.11M

3 ubuntu虚拟机及常用工具安装并配置samba共享目录.mp4 37.44M

4 ffmpeg源码下载在android下的编译参数分析讲解.mp4 20.62M

5 在ubuntu下交叉编译ffmpeg的android版本库.mp4 47.01M

6 ffmpeg通用编译bash脚本编写 硬解码 neon 多线.mp4 55.33M

7 AndroidStudio项目配置权限 jni库路径 ABI.mp4 12.66M

8 cmake配置(导入库 头文件 链接)分析.mp4 17.59M

9 创建支持ffmpeg的AndroidStudio项目并调用.mp4 44.82M

04 FFmpeg解封装(C++ NDK)

1 ffmpeg SDK软硬解码流程说明.mp4 7.20M

10 AVPacket结构解析空间申请 初始化 复制 引用计数函数.mp4 14.90M

11 av_seek_frame改变播放进度函数详解.mp4 12.31M

12 av_read_frame和av_seek_frame代码.mp4 20.68M

2 ffmpeg音视频解封装用到的函数和结构体详解.mp4 13.96M

3 avformat_open_input函数详解并示例打开mp.mp4 37.00M

4 AVFormatContext结构分析和清理代码示例.mp4 13.87M

5 avformat_find_stream_info探测.mp4 18.08M

6 AVStream和AVCodecParameters分析.mp4 22.42M

7 通过遍历获取AVStream音视频流信息并打印参数.mp4 31.77M

8 通过av_find_best_stream获取音视频流索引.mp4 7.86M

9 av_read_frame读取帧数据函数分析和产生的空间问题.mp4 9.46M

05 FFmpeg软硬解和多线程解码(C++ NDK)

1 AVCodecContext解码上下文初始化讲解和视频解码器.mp4 34.00M

2 打开音频解码器上下文.mp4 11.79M

3 AVFrame格式解析和空间处理函数.mp4 13.84M

4 avcodec_send_packet和receive.mp4 10.93M

5 音视频多线程解码代码演示.mp4 17.96M

6 音视频解码性能测试neon单线程和八线程解码测试代码.mp4 27.32M

7 ffmpeg调用MediaCodec实现硬解码代码演示.mp4 9.26M

06 FFMpeg音频重采样和视频格式转换和显示

1 sws_getContext和sws_scale像素格式.mp4 18.95M

2 sws_scale像素格式转换代码演示.mp4 33.30M

3 音频重采样SwrContext格式和swr_convert.mp4 7.85M

4 swr_init音频重采样上下文初始化和swr_conver.mp4 33.73M

5 分析GLSurfaceView和NDK接口直接显示RGB视频.mp4 14.97M

6 使用NDK通过GLSurfaceView双缓冲空间复制完成视.mp4 54.51M

7 安卓视频播放窗口去掉标题栏 全屏 横屏.mp4 21.23M

07 OpenSLES音频播放

1 OpenSLES播放音频步骤和接口讲解.mp4 30.37M

2 创建OpenSLES音频播放测试项目并完成引擎初始化.mp4 23.14M

3 完成OpenSLES混音器CreateOutputMix初始.mp4 11.20M

4 配置OpenSL的PCM音频输入格式.mp4 8.39M

5 读取pcm音频文件并使用OpenSL播放.mp4 46.00M

08 EGL和OpenGLES Shader显示YUV视频

1 egl和opengl_shader_glsl讲解.mp4 19.71M

10 OpenglES纹理数据修改和显示.mp4 18.25M

11 通过OpenglES纹理修改完成yuv文件的播放显示.mp4 11.14M

2 testopengles_shader项目配置和创建.mp4 21.83M

3 NDKC++完成EGL display surface.mp4 36.51M

4 Opengl ES Shader顶点坐标和材质坐标分析.mp4 15.69M

5 顶点着色器代码glsl代码编写.mp4 12.33M

6 yuv420p片元着色器glsl编写.mp4 24.34M

7 shader初始化完成并编译顶点和片元着色器代码.mp4 21.85M

8 program渲染程序初始化给shader传递顶点和材质顶点.mp4 30.67M

9 opengl的yuv纹理的创建和初始化.mp4 32.25M

09 视频播放器项目实战-需求和设计模式

1 视频播放器项目设计说明和UML类图知识讲解.mp4 18.98M

2 模块分解和用到的7个设计模式讲解.mp4 19.33M

3 适配器 建造者 代理模式讲解.mp4 23.72M

4 门面模式 生产者消费者模式.mp4 10.98M

5 Observer观察者模式讲解和应用.mp4 7.66M

6 解码显示帧数据处理顺序图和开发计划讲解.mp4 11.65M

10 视频播放器项目实战-音视频解码解封装

1 项目创建权限ABI和CMake相关库和头文件配置.mp4 18.08M

10 添加IDemux的GetVPara获取视频XParamter.mp4 10.71M

11 封装FFDecode解码的Send和Recv接口.mp4 24.75M

12 读取媒体帧数据获取类型信息(音频 视频)存入XData.mp4 15.05M

13 完成音视频解码和并重构解码器加入观察者模式.mp4 20.57M

14 加入生产者消费者模式控制音视频缓冲.mp4 33.18M

2 创建安卓流媒体播放器XPlay项目并配置添加了解封装模块代码.mp4 25.87M

3 FFDemux的Open实现打开媒体文件.mp4 27.96M

4 FFdemux的Read读取帧数据接口编写.mp4 19.53M

5 完成XThread线程类IDemux继承后在线程中读取帧数据.mp4 23.92M

6 添加了XSleep完成XThread线程函数的停止和超时判断.mp4 16.88M

7 观察者Observer模式的代码实现并使用IDemux测试.mp4 24.30M

8 IDecode和FFDecode模块代码创建.mp4 17.15M

9 FFDecode的Open打开解码器接口编写Observer.mp4 17.81M

11 视频播放器项目实战-音视频播放

1 IVideoView显示模块架构讲解和代码创建.mp4 40.02M

10 SLAudioPlay音频播放完成并测试对MP4文件音视频播.mp4 24.13M

11 完成硬解码并完成NV21和NV12格式的shader显示编写.mp4 90.35M

12 解决android8.0下opengles不能播放的问题.mp4 12.41M

2 IEGL类初始化封装java部分添加XPlay窗口类.mp4 49.96M

3 XShader基于yuv420p的初始化Init代码完成并测.mp4 37.07M

4 XTexture初始化并完成GLVideoView的调用.mp4 30.44M

5 GLVideoView完成使用shader显示视频.mp4 68.41M

6 完成音频重采样IResample模块初始化代码.mp4 23.69M

7 完成音频重采样IResample模块的处理功能.mp4 55.16M

8 完成了IAudioPlay和SLAudioPlay的音频播放.mp4 63.88M

9 IAudioPlay的Update将音频压入缓冲队列并测试.mp4 24.93M

12 视频播放器项目实战-完成架构解决同步和seek

1 完成facade模式的IPlayer并实现Open接口.mp4 63.39M

10 XShader线程安全处理和Close清理函数编写.mp4 22.69M

11 XTexture和GLVideoView的线程安全和清理函数.mp4 20.64M

12 IPlayer完成Close清理函数编写并完成多次打开视频.mp4 42.00M

13 添加打开视频按钮和进度滑动条并响应打开事件.mp4 22.79M

14 添加视频打开路径和香港卫视rtmp打开路径的界面.mp4 14.65M

15 完成通过界面多次打开视频文件 修正了多次打开显示出现的bug.mp4 34.00M

16 在835cpu的手机中测试并修正了音频播放Close的bug.mp4 27.18M

17 完成了播放进度的显示并修正了硬解码参数传递错误.mp4 40.71M

18 滑动条拖动Seek视频开发策略详细分析.mp4 12.94M

19 完成了IDemux的Seek和界面SeekBar的事件响应.mp4 38.32M

2 完成Iplayer开始播放和窗口初始化接口.mp4 21.66M

20 添加了视频播放的暂停和恢复.mp4 41.10M

21 修改了视频播放到结尾再次打开会锁死的bug.mp4 23.66M

22 通过手动解码帧数据完成了IPlayer控制视频播放进度的功能.mp4 40.77M

3 完成Builder模式的IPlayerBuilder构建IP.mp4 66.77M

4 完成IPlayerProxy代理模式并进行测试架构搭建完成.mp4 30.76M

5 统一换算pts为毫秒使用IPlayer完成音视频同步播放.mp4 60.93M

6 IDemux&FFdemux线程安全和Close清理函数编写.mp4 17.59M

7 FFdecode和FFResample线程安全处理Close.mp4 29.05M

8 SLAudioPlay的线程安全处理和Close清理函数编写.mp4 30.07M

9 XEGL的线程安全处理和Close清理函数编写.mp4 17.99M

FFmpeg安卓流媒体播放器开发实战视频课程-基于NDK、C 和FFmpegAndroid.zip 3.27G

您可能还喜欢...

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注