We may earn an affiliate commission when you visit our partners.
Course image
Xiacaojun 夏曹俊

课程目标:基于c++编程,掌握录制视频(rtsp和系统相机)录制音频(qt)开发方法,掌握音视频各类参数含义,掌握音视频编码(h264+acc),磨皮美颜(opencv),音视频封装(flv),基于rtmp协议推流。多线程处理技术。掌握nginx-rtmp和crtmpserver的直播服务器配置。适用人群想要学习音视频的技术的同学,或者有一定C/C++编程基础想要投入实战的同学

课程详情一 课程环境介绍1.系统环境:windows10 ubuntu16.04 win7及以上系统即可,XP系统没有经过验证,开发使用框架都是跨平台,可以代码不调整直接修改项目配置移植到linux和Mac环境中。 直播服务器配置在ubuntu 16.04 64位的虚拟机中。 2.开发工具:vs2015 可以使用vs2013,尽量不要使用太低的版本,太低版本对C++11的特性支持不好,在linux上或者mac环境可以使用QTcreater。3. 程序平台:x86 32位 可以使用64位,所有调用的第三方库都要保证是64位,arm平台可以直接移植,但需要编译ffmpeg、qt、opencv库源码。4.开发库版本 QT 5.9 32位 FFmpeg 3.3 32位 Opencv 3.2 32位

Read more

课程目标:基于c++编程,掌握录制视频(rtsp和系统相机)录制音频(qt)开发方法,掌握音视频各类参数含义,掌握音视频编码(h264+acc),磨皮美颜(opencv),音视频封装(flv),基于rtmp协议推流。多线程处理技术。掌握nginx-rtmp和crtmpserver的直播服务器配置。适用人群想要学习音视频的技术的同学,或者有一定C/C++编程基础想要投入实战的同学

课程详情一 课程环境介绍1.系统环境:windows10 ubuntu16.04 win7及以上系统即可,XP系统没有经过验证,开发使用框架都是跨平台,可以代码不调整直接修改项目配置移植到linux和Mac环境中。 直播服务器配置在ubuntu 16.04 64位的虚拟机中。 2.开发工具:vs2015 可以使用vs2013,尽量不要使用太低的版本,太低版本对C++11的特性支持不好,在linux上或者mac环境可以使用QTcreater。3. 程序平台:x86 32位 可以使用64位,所有调用的第三方库都要保证是64位,arm平台可以直接移植,但需要编译ffmpeg、qt、opencv库源码。4.开发库版本 QT 5.9 32位 FFmpeg 3.3 32位 Opencv 3.2 32位

基于c++编程,掌握录制视频(使用opencv支持rtsp和系统相机)录制音频(qt5)开发方法,掌握音视频各类参数含义,掌握音视频编码(h264+acc),磨皮双边滤波美颜(opencv),音视频封装(flv),基于rtmp协议推流。多线程处理技术各个模块交互。 掌握nginx-rtmp和crtmpserver的直播服务器配置。 基于c++语言的一些设计模式完成直播美颜推流项目。

課程目標:基於c++編程,掌握錄制視頻(rtsp和系統相機)錄制音頻(qt)開發方法,掌握音視頻各類參數含義,掌握音視頻編碼(h264+acc),磨皮美顏(opencv),音視頻封裝(flv),基於rtmp協議推流。多線程處理技術。掌握nginx-rtmp和crtmpserver的直播服務器配置。適用人群想要學習音視頻的技術的同學,或者有壹定C/C++編程基礎想要投入實戰的同學

課程詳情壹 課程環境介紹1.系統環境:windows10 ubuntu16.04 win7及以上系統即可,XP系統沒有經過驗證,開發使用框架都是跨平臺,可以代碼不調整直接修改項目配置移植到linux和Mac環境中。 直播服務器配置在ubuntu 16.04 64位的虛擬機中。 2.開發工具:vs2015 可以使用vs2013,盡量不要使用太低的版本,太低版本對C++11的特性支持不好,在linux上或者mac環境可以使用QTcreater。3. 程序平臺:x86 32位 可以使用64位,所有調用的第三方庫都要保證是64位,arm平臺可以直接移植,但需要編譯ffmpeg、qt、opencv庫源碼。4.開發庫版本 QT 5.9 32位 FFmpeg 3.3 32位 Opencv 3.2 32位

基於c++編程,掌握錄制視頻(使用opencv支持rtsp和系統相機)錄制音頻(qt5)開發方法,掌握音視頻各類參數含義,掌握音視頻編碼(h264+acc),磨皮雙邊濾波美顏(opencv),音視頻封裝(flv),基於rtmp協議推流。多線程處理技術各個模塊交互。 掌握nginx-rtmp和crtmpserver的直播服務器配置。 基於c++語言的壹些設計模式完成直播美顏推流項目。

Enroll now

Here's a deal for you

We found an offer that may be relevant to this course.
Save money when you learn. All coupon codes, vouchers, and discounts are applied automatically unless otherwise noted.

What's inside

Learning objectives

  • 使用ffmpeg进行音视频编码
  • 理解音视频参数
  • 使用qt进行音频录制
  • 使用opencv进行视频录制
  • 录制普通摄像机和rtsp网络摄像机
  • 使用opencv进行视频美艳

Syllabus

课程介绍和基础知识
介绍
直播推流流程分析讲解
直播rtmp协议分析
Read more
直播服务器讲解和配置
直播服务器介绍crtmpserver编译运行
下载ffmpeg工具推流并使用功能vlc拉流播放测试
nginx-rtmp源码下载、编译运行
nginx-rtmp直播和直播状态监听配置并使用ffplay播放直播流
FFMpegSDK解封和推流
ffmpegSDK开发环境准备,第一个ffmpeg项目创建
初始化封装和网络库打开音视频流并打印调试信息
完成输出音视频流配置信息,使用ffmpeg新版本属性替换旧版本
打开rtmp输出读取文件音视频帧
AVPacket的pts运算并完成帧推送使用vlc测试
根据AVPacket的pts控制推流速度_使用浏览器flash播放直播流
推流基于rtsp协议的大华海康相机
OpencvSDK基础
opencv源码在windows下载编译安装
windows 上创建opencv示例项目编译并执行
VideoCapture打开摄像头接口讲解和源码分析
遍历修改连续的Mat图像空间
读取一帧视频接口讲解和源码分析,分析读取解码和颜色转换过程
视频采集编码推流和类封装
opencv播放rtsp海康摄像头和播放系统摄像头
基于opencv采集rtsp流并使用异常处理失败流程
像素格式转换(RGBToYUV)上下文创建配置和清理
rgb转yuv空间分配和转换函数调用
查找编码器并创建编码器上下文
编码器参数配置并打开编码器
视频帧编码并设置pts
创建封装器添加视频AVStream并设置参数
打开推流IO,发送封装头,计算pts完成帧推流
XMediaEndcode工厂生产访问创建,ffmpeg库初始化
完成InitScale初始化像素格式转换接口
完成RGBToYUV接口封装并重构代码
完成视频编码器初始化InitVideoCodec接口封装
完成了视频编码接口并重构代码
创建XRtmp接口类和工厂方法完成封装器初始化和IO、封装头发送、视频帧发送接口
音频录制编码推流和类封装
QT5开发环境准备
音频基础知识音频参数分析
QT音频录制接口讲解并编写录制音频程序
音频重采样上下文创建和配置
音频重采样空间分配并完成重采样
音频编码器创建和参数设置
音频的pts运算音频数据编码测试
完成音频推流并测试
音频重采样XMediaEncode重采样接口封装代码重构
封装音频编码器设置接口重构视频编码器接口
完成音频编码接口封装和代码重构
完成音频推流接口XRtmp封装重构音频推流
音视频同步编码推流处理
封装音频XAudioRecord初始化和关闭接口
完成音频录制接口,录制缓冲队列处理
封装视频录制接口完成初始化和关闭接口
XDataThread数据处理线程类创建并实现.
XAudioRecord集成数据基类重构
加入视频编码器和流
完成音视频推流封装处理未同步
音频推流同步策略分析
音视频同步时间计算代码分析第一部分
音视频同步二解决音频有相同pts情况
音视频同步三完成同步
XRtmpStreamer项目完成(界面和美颜)
磨皮双边滤波算法参数说明
双边滤波磨皮算法调用并测试性能
直播框架添加图像过滤XFilter接口并实现双边滤波磨皮类
直播框架添加美颜磨皮
项目框架架构(类图)讲解
完成了XController音视频录制模块初始化
完成XController中的编码封装推流模块初始化
XController推流数据线程完成
QT直播推流项目完成界面设计
完成了qt项目直播推流

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
深度讲解音视频编码、录制、推流的技术细节,适合有 C/C++ 编程基础,想要实战音视频开发的学习者。
使用 OpenCV 进行视频录制和美颜,增强学习者的图像处理能力。
采用 Qt 框架进行音频录制,涉及音频参数和重采样的处理。
覆盖 Nginx-RTMP 和 CRTMPServer 的直播服务器配置,拓展学习者的服务器端知识。
需要一定 C/C++ 编程基础,建议有相关经验的学习者参加。
使用 QT 开发界面,但未详细介绍 QT 相关知识,学习者需具备一定 QT 基础。

Save this course

Save (简体中文)C++编程FFMpeg实时美颜直播推流实战-基于ffmpeg,qt5,opencv视频课程 to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in (简体中文)C++编程FFMpeg实时美颜直播推流实战-基于ffmpeg,qt5,opencv视频课程 with these activities:
练习读取音视频帧
熟练掌握音视频帧的读取,为后期视频处理打下基础
Show steps
  • 打开视频文件
  • 循环读取视频帧
  • 将视频帧保存到文件中
练习视频编码
掌握视频编码的基础知识,为后期视频处理和传输做好准备
Show steps
  • 初始化视频编码器
  • 将视频帧编码成视频比特流
  • 释放视频编码器
练习音频编码
掌握音频编码的基础知识,为后期音频处理和传输做好准备
Show steps
  • 初始化音频编码器
  • 将音频帧编码成音频比特流
  • 释放音频编码器
One other activity
Expand to see all activities and additional details
Show all four activities
完成视频美颜推流RTMP项目第三阶段
掌握opencv库的使用,为后期视频美颜处理做好准备
Browse courses on OpenCV
Show steps
  • 打开视频采集设备并开始采集数据
  • 初始化视频编码器和封装器
  • 不断采集视频数据并编码
  • 将编码后的数据推送到RTMP服务器

Career center

Learners who complete (简体中文)C++编程FFMpeg实时美颜直播推流实战-基于ffmpeg,qt5,opencv视频课程 will develop knowledge and skills that may be useful to these careers:

Reading list

We haven't picked any books for this reading list yet.

Share

Help others find this course page by sharing it with your friends and followers:
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser