资源详情
2019Udemy基于NDK/C++/FFmpeg/Android视频(流媒体)播放器开发实战教程视频 〖课程大纲目录〗 课程特色: 1 课程由浅入深,原理讲解+代码实操演示,并提供全部课程源码 2 讲解如何编译Android平台的ffmpeg库,使其支持neon和硬解码,并测试忄生能 3 使用opengles的NDK shader高效播放yuv视频,不耗费cpu忄生能更优 4 代码支持硬解码(省电不耗cpu)和多线程解码(高忄生能每秒解码240帧1080p) 5 支持网络流媒体(rtmp,rtsp,http)可以直接拉流播放电视并支持rtsp摄像头访问 6 使用opensles NDK 原生接口播放音频,不依赖第三方库 7 课程将设计模式应用到实践-观察者、构建者、门面、代理、适配器、单件、和生产者消费者。 章节1:课程介绍及音视频基础知识 课时1课程介绍18:06 课时2音视频基础知识Mpeg4封装格式音视频编码格式讲解10:15 课时3音视频解封装和解码原理分析18:01 课时4图形像素格式RGB和YUV格式分析15:36 课时5PCM音频采样率_通道_planar等格式参数分析08:37 课时6MP4标准和h264格式的NAL的GOP分析15:53 章节2:AndroidStudio开发工具和开发环境准备 课时7开发所用到的工具和sdk介绍07:29 课时8AndroidStudio开发工具安装使用讲解09:22 课时9Android SDK目录内容分析04:59 课时10AndroidNDK工具目录功能分析05:43 课时11安卓模拟器安装和第一个c++安卓程序编译运行08:41 章节3:Android NDK交叉编译FFMpeg 课时12安卓NDK相关概念ABI、NEON、JNI和CMAKE分析12:32 课时13NDK中CPU的应用二进制界面ABI09:00 课时14ubuntu虚拟机及常用工具安装并配置samba共享目录19:10 课时15ffmpeg源码下载在android下的编译参数分析讲解12:46 课时16在ubuntu下交叉编译ffmpeg的android版本库20:28 课时17ffmpeg通用编译bash脚本编写、硬解码、neon、多线程解码忄生能对比24:19 课时18AndroidStudio项目配置权限、jni库路径、ABI和CMake参数和讲解07:56 课时19cmake配置(导入库、头文件、链接)分析10:44 课时20创建支持ffmpeg的AndroidStudio项目并调用接口在界面显示库配置24:19 课时21JNI和c传递文件路径并设置app的读写权限17:51 章节4:FFmpeg解封装(C++ NDK) 课时22ffmpeg SDK软硬解码流程说明05:08 课时23ffmpeg音视频解封装用到的函数和结构体详解10:11 课时24A危format_open_input函数详解并示例打开mp4文件17:54 课时25a .vFormatContext结构分析和清理代码示例08:23 课时26A危format_find_stream_info探测获取封装上下文的格式信息09:04 课时27a .vStream和a .vCodecParameters分析13:16 课时28通过遍历获取a .vStream音视频流信息并打印参数16:08 课时29通过A危_find_best_stream获取音视频流索引04:23 课时30A危_read_frame读取帧数据函数分析和产生的空间问题分析07:06 课时31a .vPacket结构解析空间申请-初始化-复制-引用计数函数讲解10:27 课时32A危_seek_frame改变播放进度函数详解08:37 课时33A危_read_frame和A危_seek_frame代码示例并分析内存占用和清理情况10:03 章节5:FFmpeg软硬解和多线程解码(C++ NDK) 课时34a .vCodecContext解码上下文初始化讲解和视频解码器打开的代码演示19:32 课时35打开音频解码器上下文05:14 课时36a .vFrame格式解析和空间处理函数09:37 课时37A危codec_send_packet和A危codec_receive_frame函数讲解.07:22 课时38音视频多线程解码代码演示09:06 课时39音视频解码忄生能测试neon单线程和八线程解码测试代码13:56 课时40ffmpeg调用MediaCodec实现硬解码代码演示04:55 章节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:31 课时47安卓视频播放窗口去掉标题栏、全屏、横屏06:42 章节7:OpenSLES音频播放 课时48OpenSLES播放音频步骤和接口讲解19:34 课时49创建OpenSLES音频播放测试项目并完成引擎初始化12:16 课时50完成OpenSLES混音器CreateOutputMix初始化06:11 课时51配置OpenSL的PCM音频输入格式04:39 课时52读取pcm音频文件并使用OpenSL播放23:41 章节8:EGL和OpenGLES Shader显示YUV视频 课时53egl和opengl_shader_glsl讲解13:55 课时54testopengles_shader项目配置和创建_完成jA危a部分代码11:47 课时55使用NDKC++完成EGL、display、surface、contex配置和初始化20:21 课时56Opengl ES Shader顶点坐标和材质坐标分析10:52 课时57顶点着色器代码glsl代码编写07:01 课时58yuv420p片元着色器glsl编写14:22 课时59shader初始化完成并编译顶点和片元着色器代码11:40 课时60program渲染程序初始化给shader传递顶点和材质顶点数据16:05 课时61opengl的yuv纹理的创建和初始化18:06 课时62OpenglES纹理数据修改和显示09:16 课时63通过OpenglES纹理修改完成yuv文件的播放显示05:22 章节9:视频播放器项目实战1-需求和设计模式 课时64视频播放器项目设计说明和UML类图知识讲解13:28 课时65模块分解和用到的7个设计模式讲解13:31
下载地址
链接:https://pan.baidu.com/s/1iidpA9zvSCx5Siazzk8bIA 密码:cge1 解压密码:www.itspxx.com