专题 > 编程语言 > C/C++ > C++跨平台开发和ffmpeg,opencv音视频技术专题

C++跨平台开发和ffmpeg,opencv音视频技术专题

主题包含入门级的llinux下编程和网络和多线程编程,包含opencv视频处理软件实战,基于ffmpeg解码和QT的播放器开发实战,基于ffmpeg编码和QT的屏幕录像机实战。另外包含了在实际音视频项目中用到最多的高性能Lua脚本教程,包含的流行的直播推流技术。

8

门课程

805

人学习

 

课程总时长:68小时47分钟

授课讲师:夏曹俊

打包优惠
 
大牛讲解
 
一键下载
 
讲师24h答疑

(9.26-9.28   折上8折)

专题价 ¥749
折上8折 ¥599
总价 ¥1005

第一阶段:  C++跨平台实战

跨平台实战网络,多线程,项目编译,lua与c++联合编程

4门课程 21小时12分钟
  • VC++Windows多线程实战图片编辑器视频课程

    23节 3小时40分钟
    课程目标:
        随着CPU的多核心的发展,不管是在哪个平台,多线程的编程已经是我们工程师必须掌握的技能,我们都知道单线程编程只能利用到cpu的一个核心,对于cpu性能有极大的浪费,并且在界面编程中对于给用户反馈都必须有及时性,如果一个操作等半天没有任何响应,知道结束才告知用,那这样的用户体验是极差的,所以也必须要用到多线程编程。    多线程编程虽然成为每个项目中必须要使用的技能,但是多线程编程也带来一些开发的复杂性,对于共享资源的访问,还有线程的同步都要对线程的特性充分熟悉,对于线程互斥锁的使用也是要预先规划好,不然会造成死锁现象。    本课程适合于有一点C或者C++开发语言基础获取其他开发语言的基础,想要学习多线程编程或者想要学习windows编程的同学,通过本门课程的学习你能够理解多线程编程原理,多线程编程的实战方法,不仅局限于windows平台前台平台也是一致的,而且本课程也讲解了C++11的线程类和互斥类和QT的线程类和互斥类,都是适用于各个平台包括linux,安卓和IOS。    本课程内容包含三个部分    第一部分讲解基础知识,包括多线程的基本原理和VS2013开发工具使用,QT开发环境安装。    第二部分讲解多线程编程的WindowsAPI C++11的线程类,多线程的同步和互斥,并演示如何使用C++做一个跨平台的自己线程和互斥类。    第三部分讲解实战内容,我们使用QT来实现一个图片编辑器,通过设定线程数量来对图像的亮度做调整,通过这个示例你能够理解线程对于性能的影响,并且也能够再此熟悉下QT的开发。
    • 课时1:课程简介
    • 课时2:VS2013配置说明
    • 课时3:VS2013项目文件讲解
    • 课时4:VS+QT开发环境准备
    • 课时5:多线程编程基础知识
    • 课时6:WindowsAPI创建线程
    • 课时7:使用C++封装线程类
    • 课时8:多线程处理10亿大小的数组
    • 课时9:将线程类编入DLL库中并演示使用
    • 课时10:线程的挂起和恢复
    • 课时11:线程同步临界区调用
    • 课时12:临界区使用C++类封装
    • 课时13:通过命名互斥量控制程序只能运行...
    • 课时14:C++11线程类和互斥类
    • 课时15:使用C++11线程和互斥类实现多线程购票
    • 课时16:多线程图片编辑器项目说明
    • 课时17:建立设置QT项目的并设计完界面
    • 课时18:打开外部图片并使用QT显示
    • 课时19:单线程完成图片亮度设置
    • 课时20:创建图片处理线程
    • 课时21:开启多线程完成亮度设置
    • 课时22:控制滑动条显示图片处理进度
    • 课时23:显示图片多线程亮度设置所耗费的时间
    查看更多
  • 【夏曹俊】零基础学会在Linux上编译调试C++项目视频课程

    32节 3小时40分钟
    课程目标:
          本课程主要针对没有或者很少写过linux上C++程序的同学, 本课程会教你如何从0基础开始,安装配置ubuntu虚拟机、使用GCC编译普通程序、动态库、静态库,编写复杂项目配置文件makefile,使用GDB工具调试C++程序。     通过本课程学习,可以熟练掌握如何高效的编译调试Linux上的c++程序,掌握如何安装配置ubuntu系统,掌握gcc编译动态、静态库,掌握makefile的编写,能够用Makfile编写出高效的项目配置文件。      课程中开发环境准备包括虚拟机安装、ubuntu网络配置、openssh安装配置,samba共享安装配置。课程会讲解GCC编译的各种参数说明和示例演示。课程中会详细演示如何使用GDB单步调试C++程序.课程中会讲解Makefile的详细使用方法。课程最后会讲解一个多线程网络服务端程序的实战。    课程讲师:夏曹俊              
    • 课时1:课程介绍
    • 课时2:VMWare虚拟机安装
    • 课时3:Ubuntu系统在虚拟机中安装
    • 课时4:Ubuntu系统在虚拟机中安装
    • 课时5:远程访问Linux_Openssh安装
    • 课时6:Ubuntu网络配置
    • 课时7:通过共享在windows上直接编辑Linux代码
    • 课时8:Linux_GCC介绍
    • 课时9:Linux_GCC参数设置
    • 课时10:GCC多文件编译
    • 课时11:Linux静态编译
    • 课时12:Linux动态库编译和调用
    • 课时13:GDB介绍和list指令
    • 课时14:GDB设置取消断点和单步调试
    • 课时15:GDB打印和设置内存变量
    • 课时16:GDB常用指令总结
    • 课时17:程序宕掉后通过gdb查看出错信息(...
    • 课时18:Makfile介绍
    • 课时19:编写第一个Makefile(修改音视频不同步)
    • 课时20:Makefile文件包含的五部分内容
    • 课时21:编写多文件并包含动态链接库的Makefile
    • 课时22:编写运行引用了so动态库程序的脚本
    • 课时23:Makefile优化添加变量
    • 课时24:Makefile优化添加清理代码块
    • 课时25:Makefile优化使用自动变量
    • 课时26:Makefile编写安装和卸载
    • 课时27:实战介绍并创建自定义socket动态库项目
    • 课时28:封装并创建socket函数
    • 课时29:绑定bind端口开始监听连接并完成...
    • 课时30:创建测试自定义socket库的项目
    • 课时31:完成accept接收浏览器的连接请求
    • 课时32:Recv浏览器发送http头信息并打印
    查看更多
  • 【夏曹俊】C++socket网络编程大全实战http服务器(支持php)视频课程

    69节 8小时55分钟
    课程目标:
     课程讲师:夏曹俊演示系统:             windows10 + vs2013        vmware+ubuntu 16.04 64位         课程中有问题可以在问答环节提问,我会及时解答      本课程会同时演示在linux和windows中的编程,课程中的线程和正则表达式都使用c++提供库。     课程讲解理论与实践相结合,实践以代码延时讲解为主,本课程包含了socket编程常用的所有特性,包括tcp、udp协议的基础编程,广播包,超时连接,多路复用,高并发的epoll多路复用,多线程的服务端。课程实战项目包含完整的支持php的http服务器*(TCP),接收并分析linux系统日志的xsyslog项目(UDP)。     课程相当于包含了:linux网络编程和windows网络编程     以下是课程目录   
    • 课时1:课程内容介绍
    • 课时2:学习方法说明和课程代码下载演示
    • 课时3:TCPIP协议分层讲解
    • 课时4:网络包抓包分析
    • 课时5:在windows和Linux系统之间配置共享
    • 课时6:系统socket库介绍
    • 课时7:windows上加载socket库
    • 课时8:在windows平台创建socket
    • 课时9:移植到Linux并设置单进程创建sock...
    • 课时10:TCP协议特点讲解
    • 课时11:TCP协议头和窗口分析
    • 课时12:创建TCPServer设置服务器信息并讲...
    • 课时13:bind端口
    • 课时14:listen开始监听
    • 课时15:accept读取用户的连接信息
    • 课时16:取出连接客户端IP地址和端口号
    • 课时17:服务端recv客户端发送数据
    • 课时18:服务端循环接收客户端数据
    • 课时19:服务端回应send客户端数据
    • 课时20:Tcpserver开启多线程并发处理
    • 课时21:Tcpserver移植到windows
    • 课时22:创建XTcp类接口
    • 课时23:封装跨平台accpet和close接口
    • 课时24:封装跨平台send和recv接口
    • 课时25:封装socket和bind接口
    • 课时26:XTcp类在windows中测试
    • 课时27:XTcp类在Linux中的测试
    • 课时28:创建XTcp动态dll链接库项目
    • 课时29:测试XTcp的dll动态链接库
    • 课时30:创建XTcp动态so链接库项目(Linux)
    • 课时31:测试XTcp的so动态链接库
    • 课时32:创建tcpclient项目
    • 课时33:tcp三次握手协议详解
    • 课时34:完成XTcp库connect函数封装
    • 课时35:移植到Linux并测试与服务端通信
    • 课时36:tcp编程总结
    • 课时37:Windows中设置socket阻塞和非阻塞
    • 课时38:Linux中设置socket阻塞和非阻塞
    • 课时39:通过select实现connect的跨平台超时处理
    • 课时40:并发测试工具ab使用讲解
    • 课时41:epoll高并发多路复用讲解
    • 课时42:通过epoll接收用户连接
    • 课时43:基于epoll的高性能服务端开发和高...
    • 课时44:http协议详解通过抓包和telnet模拟分析
    • 课时45:Xhttp项目创建接受浏览器请求
    • 课时46:响应浏览器的页面请求完成http的...
    • 课时47:通过正则表达式分析浏览器请求
    • 课时48:获取请求文件大小并生成http协议头
    • 课时49:发送用户请求的页面和图片
    • 课时50:完成http1.1协议并移植到windows
    • 课时51:通过正则表达式获取请求页面文件...
    • 课时52:调用php-cgi完成php脚本解析
    • 课时53:完成php脚本解析并返回给浏览器
    • 课时54:支持给php传递基于URLGET变量
    • 课时55:封装XhttpServer对外接口类
    • 课时56:封装XHttpClient处理单个请求的接口
    • 课时57:封装http协议响应类XHttpResponse
    • 课时58:完成Xhttp封装移植到linux解决中断问题
    • 课时59:UDP协议讲解
    • 课时60:创建UDPserver监听端口
    • 课时61:recvfrom接受客户端数据
    • 课时62:sendto客户端和服务端互相发送数据
    • 课时63:UDPclient和Server移植到linux
    • 课时64:UDP广播包发送接收
    • 课时65:syslog项目介绍linux系统日志配置
    • 课时66:创建xsyslog在动态库中封装udp类
    • 课时67:封装UDP的recv和send
    • 课时68:使用UDP接收Linux日志
    • 课时69:使用正则表达式分析syslog日志并...
    查看更多
  • 【夏曹俊】C++与Lua联合编程实战(c++程序员必备技能)

    21节 4小时56分钟
    课程目标:
    Lua作为最快的脚本语言(没有之一),可以编译调试,可以很方便的和用C/C++编写的逻辑互相调用。拥有众多优点,我们将程序员必须掌握一门脚本语言,如果你只想掌握一门,我建议是Lua。本课程从实战角度讲解了最流行的高性能脚本Lua与c++的联合开发,这套方案已经被大量的对性能由要求的系统使用,成为了高性能脚本的唯一方案,像大量的游戏在使用lua,比如魔兽世界、博德之门、仙剑奇侠传五等,高性能的视频应用也在用lua&c++(比如笔者的公司),还有最近击败了韩国围棋的AlphaGo也是使用了 c++&lua的方案       
    • 课时1:课程介绍(为什么用c++和Lua)
    • 课时2:环境准备和编译
    • 课时3:第一个c++和lua结合的程序
    • 课时4:Lua变量和字符串处理
    • 课时5:Lua条件判断和循环语句
    • 课时6:Lua表和函数语法
    • 课时7:Lua调用c++函数传递普通参数
    • 课时8:Lua调用c++函数传递普通数组参数
    • 课时9:Lua调用c++函数传递表和参数类型检查
    • 课时10:Lua调用c++函数获取返回值
    • 课时11:c++给lua传递变量和访问lua的全局变量
    • 课时12:c++调用lua给lua传递表和访问lua的表
    • 课时13:c++调用lua函数(基础调用)
    • 课时14:C++调用Lua函数错误显示和Lua堆栈清理
    • 课时15:C++调用Lua函数传递参数
    • 课时16:C++调用Lua函数的错误处理
    • 课时17:c++调用lua函获取返回表
    • 课时18:Lua&MFC项目建立并初始化
    • 课时19:Lua和MFC结合值接口开放
    • 课时20:Lua&MFC项目完成和课程总结
    • 课时21:课程总结
    查看更多

第二阶段:  音视频实战

学会opencv和ffmpeg的音视频接口,并能够设计多功能的音视频项目

4门课程 47小时35分钟
  • 【夏曹俊】c++实战学习OpenCV3.2+QT5+ffmpeg实战开发视频编辑器视频教程

    69节 14小时9分钟
    课程目标:
       课程更新完毕,后面会根据同学的意见维护此课程    课程讲师:【夏曹俊】    课程基于opencv最新版3.2讲解,全部使用最新的c++接口,旧的接口会逐步被opencv抛弃,所以我们学习还是尽量学习新的接口,QT使用最新的5.8版本,课程中会跨平台演示,所有代码都可以在windows和linux中编译,在windows中使用vs2013,linux中使用qtcreator,课程会提供全部源码和最新opencv和QT版本的下载。    课程中讲解的opencv知识点,不追求全(全不如看手册),但求完整,讲解我们实战项目用到的函数方法,但凡是讲到的都要有一定的深度,分析其函数的实现、源码,有些我们自己也作出实现,课程的目标不是只能作出demo,而是要你能将opencv投入到实际项目中去。     现在深度学习和人工智能热门,大量的技术涌现,单opencv作为老牌的图像视频库,一直是在大量的生产环境(包括嵌入式设备)中应用,不管你用什么深度学习的平台,opencv都是作为图像图像领域及佳的选择,可以很方便的与第三方深度学习框架结合 ,我公司项目中也一直在应用。      课程中会讲解到基于opencv视频和摄像机录制、播放和播放进度控制,多视频图像合并、多视频图像融合、剪切、视频亮度、对比度、尺寸(近邻插值(手动实现),双线性插值,高斯金字塔,拉普拉斯金字塔)、颜色格式(灰度图,二值化(阈值)),旋转镜像,视频裁剪(ROI),视频水印(ROI+weight),导出处理后的视频(包含音频,使用ffmpeg工具对音频进行抽取、剪切和最终于opencv处理的视频合并)。      课程中会讲解最热门的跨平台界面库QT5.8,用过或者学习过QT的人都知道这是c++程序员必须掌握的技能,包括现在热门的Python也是在大量的应用QT来做界面,QT的设计及其精美,他的信号槽机制很好的将界面与业务隔离开来,并且界面可以使用类似CSS的设置做得很炫(参考下图),不会像MFC一样自动生成的代码和你手写的代码融合在一起。当然我们也会仔细分析一下他的信号槽机制,你不理解他的机制会有很多坑等着你。      课程中的实战视频编辑器会详细相机项目的设计架构图,提供全部源码,对实现进行迭代式讲解,就像你自己在做一个项目一样,最终完成所有的功能。下图是最终实现的软件界面
    • 课时1:课程介绍
    • 课时2:opencv源码在windows下载编译安装
    • 课时3:Ubuntu下编译opencv源码
    • 课时4:windows 上创建opencv示例项目编译并执行.
    • 课时5:ubuntu上创建opencv示例项目makef...
    • 课时6:QT开发环境下载、项目创建、代码...
    • 课时7:课程代码下载说明
    • 课时8:OpenCV Mat类型分析源码介绍、空...
    • 课时9:遍历和修改连续的OpenCV Mat图像空间
    • 课时10:使用opencv接口实现运行记时函数...
    • 课时11:遍历不连续的OpenCV Mat空间
    • 课时12:通过OpenCV ptr模板函数遍历Mat...
    • 课时13:通过OpenCV at函数遍历Mat并捕获异常
    • 课时14:通过迭代器遍历Mat并总结遍历方法
    • 课时15:QT自定义opengl的Widget绘制Mat
    • 课时16:通过ROI感兴趣区域来裁剪图像
    • 课时17:RGB、YUV、GRAY像素格式介绍openc...
    • 课时18:手动实现转换灰度图并与opencv提...
    • 课时19:通过OpenCV阈值函数threshold实现...
    • 课时20:通过对Mat遍历修改图像亮度和对比...
    • 课时21:图像尺寸调整算法介绍并手动实现...
    • 课时22:调用opencv的resize使用近邻算法...
    • 课时23:图像尺寸调整双线程插值算法讲解...
    • 课时24:高斯金字塔和拉普拉斯金字塔调整...
    • 课时25:实现两幅图像混合blending
    • 课时26:图像旋转和镜像
    • 课时27:通过ROI实现图像并排合并
    • 课时28:OpenCV VideoCapture打开摄像头...
    • 课时29:OpenCV VideoCapture打开视频流...
    • 课时30:VideoCapture release关闭和空间...
    • 课时31:OpenCV read读取一帧视频接口讲...
    • 课时32:使用OpenCV VideoCapture播放视频示例
    • 课时33:获取视频和相机的属性并分析获取...
    • 课时34:使用opencv实现视频播放位置跳转
    • 课时35:通过VideoWrite的open创建视频文...
    • 课时36:通过VideoWrite的write写入视频文...
    • 课时37:以h264格式录制并预览摄像机视频...
    • 课时38:使用ffmpeg工具实现音频抽取、剪...
    • 课时39:编辑器的需求分析和最终实现的功...
    • 课时40:项目类图介绍和类功能讲解
    • 课时41:基于QT系统界面设计详解
    • 课时42:实战项目环境搭建、项目创建和配置
    • 课时43:完成视频编辑器播放界面并完成绘...
    • 课时44:详解通过qss完成界面风格设置,设...
    • 课时45:通过qt界面打开外部视频并完成打...
    • 课时46:使用opencv读取并解码视频通过信...
    • 课时47:解码并使用播放视频,分析并解决Q...
    • 课时48:视频播放器进度条(QSlider)显示...
    • 课时49:通过QSlider滑动条拖动完成视频播...
    • 课时50:调整视频亮度对比度1完成XImagePro类
    • 课时51:调整视频亮度对比度2完成XFilter类
    • 课时52:调整视频亮度对比度3完成界视频结...
    • 课时53:视频的导出1接口调用搭建和界面实...
    • 课时54:视频导出2功能实现
    • 课时55:完成播放暂停并使用qss设置播放暂...
    • 课时56:视频图像旋转并导出
    • 课时57:视频上下左右镜像.
    • 课时58:调整视频尺寸并导出
    • 课时59:通过图像金字塔调整视频尺寸
    • 课时60:通过ROI裁剪视频画面
    • 课时61:转换为灰度图视频并导出
    • 课时62:视频添加水印
    • 课时63:视频融合1-完成了打开第二个视频源
    • 课时64:视频融合2-完成了融合和导出.
    • 课时65:两路视频的横向合并为一个视频
    • 课时66:音频类的抽取接口开发和测试
    • 课时67:完成视频中音频的的合并导出
    • 课时68:完成了视频的开始结束位置剪辑音...
    • 课时69:完成了视频剪辑包含音频剪辑
    查看更多
  • 【夏曹俊】C++实战FFmpeg音视频编码实战屏幕录像机视频课程-基于QT5和ffmpeg sdk

    54节 10小时52分钟
    课程目标:
    本课程讲解的是基于最流行的直播技术 FFMpeg3.3音视频处理框架,和应用最广的c++跨平台的QT5库(主要用作界面)。开发的一个完整的屏幕录像机项目,包含桌面录制(基于 QT(跨平台),directx(高效)),(基于QT5)话筒录制,音视频h264编码,MP4封装。QT圆角边框界面。开发工具基于vs2013,但同样适用于vs更高版本。课程讲师:【夏曹俊】代码下载方法      课程提供全部源码和项目文件,在课程介绍页面的学习资料中下载界面课程大纲
    • 课时1:课程介绍
    • 课时2:封装和编码格式介绍mpeg4标准介绍
    • 课时3:FFMpeg库下载和vs项目创建
    • 课时4:创建mp4转mov的项目并调用SDK打开mp4文件
    • 课时5:创建mov封装格式的上下文创建并配...
    • 课时6:写入mov视频文件格式头信息
    • 课时7:完成成了视频音频帧数据写入并根...
    • 课时8:重封装用到的SDK接口和结构体通过...
    • 课时9:详解RGB和YUV
    • 课时10:创建视频编码项目设置并打开视频...
    • 课时11:完成视频编码的封装上下文创建和...
    • 课时12:视频像素格式转换rgb转为yuv
    • 课时13:视频封装头和尾写入视频帧编码
    • 课时14:完成视频写入清理,解决AVPacket...
    • 课时15:音频参数详解
    • 课时16:创建和配置音频编码器
    • 课时17:创建音频封装的输出上下文写入音...
    • 课时18:创建和配置音频重采样上下文
    • 课时19:创建音频输出AVFrame完成音频重采样
    • 课时20:完成音频的编码和封装入aac文件
    • 课时21:音视频编码类封装介绍和使用ffmpe...
    • 课时22:创建XVideoWriter接口类完成工厂...
    • 课时23:完成ffmpeg初始化、输出上下文初...
    • 课时24:新增视频流接口添加,设置视频编...
    • 课时25:设置rgb转yuv转换上下文参数设置...
    • 课时26:读取文件中rgb数据转换为yuv
    • 课时27:完成h264视频帧编码和相关资源清理
    • 课时28:打开视频输出IO写入mp4视频文件头
    • 课时29:写入视频帧和视频索引并修正视频...
    • 课时30:音频编码器参数设置并打开
    • 课时31:音频重采样上下文参数设置和初始化
    • 课时32:读取音频文件中pcm进行重采样并清...
    • 课时33:音频编码和MP4文件写入
    • 课时34:音频pts计算并完成音视频写入同步计算
    • 课时35:directx截屏接口讲解
    • 课时36:完成directx3d对象创建和显卡devi...
    • 课时37:创建离屏表面并截取屏幕编码为mp4视频
    • 课时38:QT5开发环境准备QtScreen项目创建
    • 课时39:完成qt屏幕截图并在QWidget中显示
    • 课时40:使用qt显示directx截屏并比较两种...
    • 课时41:QT音频录制类方法讲解
    • 课时42:使用qt完成音频录入并将录入音频...
    • 课时43:屏幕录像机项目简介和用到的qt技...
    • 课时44:设置圆角无锯齿窗口并添加关闭和...
    • 课时45:完成按钮的三种样式图片设置,使...
    • 课时46:完成录制和停止录制按钮事件响应...
    • 课时47:项目类图类设计
    • 课时48:XCaptureThred类启动关闭和线程入...
    • 课时49:XCaptureThread截屏线程和队列rgb...
    • 课时50:XAudioThread音频录制类编码完成.
    • 课时51:XScreenRecord屏幕录制控制类完成...
    • 课时52:完成XScreenRecord音视频的录制接...
    • 课时53:完成了屏幕录像机qt界面与XSCreen...
    • 课时54:视频录制程序发布dll库准备
    查看更多
  • 【夏曹俊】C++实战手把手教您用ffmpeg和QT开发播放器实战视频课程

    38节 7小时10分钟
    课程目标:
        这门课程给大家讲解的是基于当前最流行FFMpeg视频处理框架和最流行的QT跨平台库。开发的一个完整的视频播放器,不是基于视频播放控件开发,而是从底层全部实现。   本课程从功能需求分析、基本原理讲解到代码实现演示,让您经历一个实际项目的全过程。   特别适合有一定C或者C++基础,想要提高自己是实战能力学员,学完此门课,可以说你们项目经历里面就可以增加一项,开发过qt和ffmpeg的C++程序,实现了一个播放器的音视频全部功能。   本课程同时也适合与想要学习ffmpeg和qt的同学,本课程学完之后你就已经将ffmpeg可以投入实际的项目应用,对于QT的基本原理你也非常清楚了,可以实现复杂的qt界面,您就可以独立开发出音视频的各种应用,包括无人机,安防,直播视频直播,视频会议,并能够开发出跨平台的应用.      所有视频精心制作,采用用专用录音话筒和录制声卡,确保没有噪音,所有代码演示都经过放大处理适应手机观看。课程讲师:夏曹俊
    • 课时1:课程介绍
    • 课时2:QT开发环境准备
    • 课时3:ffmpeg介绍和开发环境准备
    • 课时4:学习方法说明和课程代码下载演示
    • 课时5:2.1ffmpeg打开视频文件
    • 课时6:2.2ffmpeg读取视频帧
    • 课时7:2.3打开ffmpeg的视频解码器
    • 课时8:2.4ffmpeg视频解码并分析H264压缩算法
    • 课时9:2.5打开ffmpeg格式转换和缩放器
    • 课时10:2.6使用ffmpeg转换为RGB数据并缩放视频
    • 课时11:2.7重构封装FFmpeg类完成打开和关...
    • 课时12:2.8重构FFmpeg读取视频帧接口
    • 课时13:2.9重构ffmpeg解码接口
    • 课时14:2.10重构封装FFmpeg缩放接口
    • 课时15:3.1基于QT的播放器界面绘制
    • 课时16:3.2通过QT显示转码后的RGB数据
    • 课时17:3.3创建解码线程控制播放速度
    • 课时18:3.4通过QT打开外部视频
    • 课时19:4.1视频总时间显示
    • 课时20:4.2视频播放的当前时间显示
    • 课时21:4.3进度条显示播放进度
    • 课时22:4.4进度条拖动控制播放位置
    • 课时23:4.5控制视频的播放和暂停
    • 课时24:4.6视频显示和窗口大小同步变化
    • 课时25:4.7重载QT滑动条点击控制播放进度
    • 课时26:5.1QT音频库介绍和示例
    • 课时27:5.2QT音频播放类封装
    • 课时28:5.3QT音频播放的启动和停止接口实现
    • 课时29:5.4QT音频播放暂停和缓冲写入接口实现
    • 课时30:5.5ffmpeg音频解码器打开
    • 课时31:5.6ffmpeg音频解码
    • 课时32:5.7ffmpeg音频重采样标准化音频的...
    • 课时33:5.8完成音视频的播放
    • 课时34:5.9通过多线程和缓冲队列实现音视...
    • 课时35:ubuntu下安装qt5.8并编译安装ffmpeg
    • 课时36:将XPLay播放器项目移植到ubuntu下...
    • 课时37:6.1代码下载说明
    • 课时38:6.2课程总结
    查看更多
  • 【夏曹俊】C++编程FFMpegSDK美颜直播推流实战-基于qt5,opencv视频课程

    67节 15小时22分钟
    课程目标:
    一 课程环境介绍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位      提供全部源码二课程介绍   1 基于c++编程,掌握录制视频(使用opencv支持rtsp和系统相机)录制音频(qt5)开发方法,掌握音视频各类参数含义,掌握音视频编码(h264+acc),磨皮双边滤波美颜(opencv),音视频封装(flv),基于rtmp协议推流。多线程处理技术各个模块交互。   2 掌握nginx-rtmp和crtmpserver的直播服务器配置。   3 课程讲解ffplay和html的flash插件播放直播   4 基于c++语言的一些设计模式完成直播美颜推流项目。   三课程内容示例1.直播推流流程2.直播推流项目类图3 直播推流音视频同步计算4 提供全部项目代码四 课程目录   
    • 课时1:课程介绍
    • 课时2:直播推流流程分析讲解
    • 课时3:直播rtmp协议分析
    • 课时4:直播服务器介绍crtmpserver编译运...
    • 课时5:下载ffmpeg工具推流并使用功能vlc...
    • 课时6:nginx-rtmp源码下载、编译运行(ubuntu)
    • 课时7:nginx-rtmp直播和直播状态监听配...
    • 课时8:ffmpegSDK开发环境准备,第一个ff...
    • 课时9:初始化封装和网络库打开音视频流...
    • 课时10:完成输出音视频流配置信息,使用f...
    • 课时11:打开rtmp推流输出并从文件读取音...
    • 课时12:AVPacket的pts运算并完成帧推送使...
    • 课时13:根据pts和系统记时控制推流速度_...
    • 课时14:推流基于rtsp协议的大华海康相机
    • 课时15:opencv源码在windows下载编译安装
    • 课时16:windows 上创建opencv示例项目
    • 课时17:遍历修改连续的Mat图像空间
    • 课时18:VideoCapture打开摄像头接口讲解...
    • 课时19:读取一帧视频接口讲解和源码分析...
    • 课时20:opencv播放rtsp海康摄像头和播放...
    • 课时21:基于opencv采集rtsp流并使用异常...
    • 课时22:像素格式转换(RGBToYUV)上下文...
    • 课时23:rgb转yuv空间分配和转换函数调用
    • 课时24:查找编码器并创建编码器上下文
    • 课时25:编码器参数配置(包括打开多线程...
    • 课时26:视频帧编码并根据设置AVFrame的输入pts
    • 课时27:创建封装器添加视频AVStream并设置参数
    • 课时28:打开推流IO,发送封装头,计算pts...
    • 课时29:XMediaEndcode工厂生产方法创建
    • 课时30:完成InitScale初始化像素格式转换接口
    • 课时31:完成RGBToYUV接口封装并重构代码
    • 课时32:完成视频编码器初始化InitVideoCo...
    • 课时33:完成了视频编码接口并重构rtsp_to...
    • 课时34:创建XRtmp接口类完成封装器接口
    • 课时35:QT5开发环境准备
    • 课时36:音频基础知识音频参数分析
    • 课时37:QT音频录制接口讲解并编写录制音...
    • 课时38:音频重采样上下文创建和配置
    • 课时39:音频重采样空间分配并完成重采样
    • 课时40:音频编码器创建和参数设置
    • 课时41:音频的pts运算音频数据编码测试
    • 课时42:完成音频推流并测试
    • 课时43:音频重采样XMediaEncode重采样接...
    • 课时44:封装音频编码器设置接口重构视频...
    • 课时45:完成音频编码接口封装和代码重构
    • 课时46:完成音频推流接口XRtmp封装重构音...
    • 课时47:封装音频XAudioRecord初始化和关闭接口
    • 课时48:完成音频录制接口,录制缓冲队列处理
    • 课时49:封装视频录制接口完成初始化和关...
    • 课时50:XDataThread数据处理线程类创建并实现
    • 课时51:XAudioRecord集成数据基类重构
    • 课时52:加入视频编码器和流
    • 课时53:完成音视频推流封装处理未同步
    • 课时54:音频推流同步策略分析
    • 课时55:音视频同步时间计算代码分析第一部分
    • 课时56:音视频同步二解决音频有相同pts情况
    • 课时57:音视频同步三完成同步
    • 课时58:磨皮双边滤波算法参数说明
    • 课时59:双边滤波磨皮算法调用并测试性能
    • 课时60:直播框架添加图像过滤XFilter接口...
    • 课时61:直播框架添加美颜磨皮
    • 课时62:XRtmpStreamer项目框架架构(类图)讲解
    • 课时63:完成了XController音视频录制模块初始化
    • 课时64:完成XController中的编码封装推流...
    • 课时65:XController推流数据线程完成
    • 课时66:QT直播推流项目完成界面设计
    • 课时67:完成了qt项目直播推流
    查看更多

C++跨平台开发和ffmpeg,opencv音视频技术专题

¥1005 ¥599

可以开发票么?

可以的,购买课程或者充值余额后都是可以开具发票的,具体详情点击:我要开发票

购买的课程可以下载么?

目前PC端暂不支持下载课程视频,请手机或者平板电脑下载“51CTO学院”APP后再下载视频哦!

优惠券如何使用?

非折扣课程(不包含1元课程/套餐)可使用,一个订单(可包含多个课程)只可使用一张;优惠券一经使用,不再返还;若被冻结请在PC端删除订单即可返还。

更多问题查询点击 帮助中心

欢迎您提供宝贵意见,对于您的意见我们都会认真、慎重的讨论,每一个意见都是我们更好为您服务的鞭策和激励,感谢您帮助学院成长,我要反馈意见