音视频有关的部分都是使用标准C++的,只有界面的部分才会使用Qt的内容。这样也是为了方便以后移植到其他系统上。

  音视频开发中最常做的就是编解码的操作。以H.264为例:如果想要自己实现编码h.264,需要对H.264非常的了解。可以选择去看H.264的文档,也可以使用别人已经写好的源代码。

  主流的H.264编码器:x264、t264等

但对于新手来说,由于对h.264不是很了解,因此在使用x264上有点困难,出了问题通常不知道如何解决。并且这些库都只能编码一种格式,所以一开始不推荐使用。 而是推荐使用FFMPEG。

FFMPEG  

  FFMPEG是一个集成了各种编解码器的库,可以说是一个全能型的工具,从视频采集、视频编码到视频传输(包括RTP、RTCP、RTMP、RTSP等等协议)都可以直接使用FFMPEG来完成,更重要的一点FFMPEG是跨平台的,Windows、Linux、Aandroid、IOS这些主流系统通吃。因此初期强烈建议直接使用FFMPEG。

1、下载FFMPEG:https://ffmpeg.zeranoe.com/builds/

  • Static :静态库版本
  • Shared:动态库版本
  • Dev:提供给开发者用的lib文件

下载Dev文件和Shared文件

只留下include和lib这2个文件夹,其他的都删了

创建Qt的纯C++项目,在.pro文件中链接库文件(在dev文件的lib文件夹下)

再将shared/bin文件夹中的dll文件,复制到当前qt工程debug文件中

测试一下,输出版本号

#pragma execution_character_set("utf-8")
#include <iostream>
using namespace std; extern "C"
{
#include "libavcodec/avcodec.h"
#include "libavformat/avformat.h"
#include "libswscale/swscale.h"
#include "libavdevice/avdevice.h"
}
///而FFMPEG是C的库
///由于我们建立的是C++的工程
///编译的时候使用的C++的编译器编译
///因此这里需要加上extern "C"
///否则会提示各种未定义 int main(int argc, char *argv[])
{
cout << "Test FFmpeg!" << endl; av_register_all();
unsigned version = avcodec_version();
cout << "version :" << version; return 0;
}

最新文章

  1. Tornado学习笔记12 tornado.httpserver-.非阻塞的Http服务器
  2. PHP5.3.3+Apache2.2.16+MySQL5.1.49
  3. linuxMint設置窗口最大最小化
  4. Swift2.1 语法指南——嵌套类型
  5. Java基础加强学习笔记(二)
  6. 左右 Java 于 finally 深度分析语句块
  7. jmeter命令行运行-单节点
  8. JavaWeb总结(二)—HttpServletResponse对象
  9. C++构造函数(一)
  10. IEEE1588 verision2 报文介绍
  11. (class file version 53.0), Java Runtime versions up to 52.0错误的解决方法
  12. Linux安装配置git
  13. POJOの説明
  14. jquery 1.7.2源码解析(二)构造jquery对象
  15. Windows Update Medic Service 拒绝访问
  16. 激活WIN10系统
  17. windows系统安装ubuntu双系统
  18. Line云端全自动加好友机器人
  19. mongo获取lbs数据
  20. 这样的UI UX设计师描述你满意吗?

热门文章

  1. seqsever 查询多个表的条数,并以列的形式展现
  2. mysql:数据库加解密查询
  3. cross-env 运行跨平台设置和使用环境变量的脚本
  4. iOS第三方库汇总(转)
  5. Mysql数据库简单常用语句
  6. Spring Boot--自定义异常类
  7. 题解 UVA10859 【Placing Lampposts】
  8. 修改docker0 中的inet
  9. python multiprocessing调用cython openmp方法需要采用spawn方式
  10. PyQt5模块说明