音视频开发6. 搭建 ffmpeg Linux远程开发环境

  • 一、准备环境
  • 二、操作步骤
    • 1. 在CentOS 编译安装 ffmpeg
    • 2. 编译安装ffmpeg后的环境
    • 3. 本地在vscode安装 远程开发插件
    • 4. 点击vscode左下角,进行远程配置。
    • 5. 点击左侧Remote Explorer,连接到服务端
    • 6. 在vscode点击文件菜单,打开文件夹,选择远程目录
  • 三、建测试项目
    • 1. 项目CmakeLists.txt设置
    • 2. main.cpp
    • 3. 编译运行

一、准备环境

  • CentOS7 服务端
  • 安装gcc4.8.2
  • 本地windows,安装vscode

目标: 搭建FFmpeg 远程开发环境 ,本地使用VSCode。

二、操作步骤

1. 在CentOS 编译安装 ffmpeg

安装可参考: CentOS编译安装ffmpeg

2. 编译安装ffmpeg后的环境


库文件位置 : /usr/lib
ffmpeg源文件位置: /home/用户名/ffmpeg_sources/ffmpeg-4.2.2

3. 本地在vscode安装 远程开发插件


另外安装 c/c++插件。

4. 点击vscode左下角,进行远程配置。


按提示配置远程服务器信息。

5. 点击左侧Remote Explorer,连接到服务端

6. 在vscode点击文件菜单,打开文件夹,选择远程目录

三、建测试项目

项目路径: /home/xundh/ffmpegrtsp/

1. 项目CmakeLists.txt设置

cmake_minimum_required(VERSION 3.17)
project(ffmpeg_demo)# 设置ffmpeg依赖库及头文件所在目录,并存进指定变量
set(ffmpeg_libs_DIR /home/xundh/ffmpeg_sources/ffmpeg-4.2.2)
set(ffmpeg_headers_DIR /home/xundh/ffmpeg_sources/ffmpeg-4.2.2)#对于find_package找不到的外部依赖库,可以用add_library添加
# SHARED表示添加的是动态库
# IMPORTED表示是引入已经存在的动态库add_library( avcodec SHARED IMPORTED)
add_library( avfilter SHARED IMPORTED )
add_library( swresample SHARED IMPORTED )
add_library( swscale SHARED IMPORTED )
add_library( avformat SHARED IMPORTED )
add_library( avutil SHARED IMPORTED )#指定所添加依赖库的导入路径
set_target_properties( avcodec PROPERTIES IMPORTED_LOCATION ${ffmpeg_libs_DIR}/libavcodec/libavcodec.so )
set_target_properties( avfilter PROPERTIES IMPORTED_LOCATION ${ffmpeg_libs_DIR}/libavfilter/libavfilter.so )
set_target_properties( swresample PROPERTIES IMPORTED_LOCATION ${ffmpeg_libs_DIR}/libswresample/libswresample.so )
set_target_properties( swscale PROPERTIES IMPORTED_LOCATION ${ffmpeg_libs_DIR}/libswscale/libswscale.so )
set_target_properties( avformat PROPERTIES IMPORTED_LOCATION ${ffmpeg_libs_DIR}/libavformat/libavformat.so )
set_target_properties( avutil PROPERTIES IMPORTED_LOCATION ${ffmpeg_libs_DIR}/libavutil/libavutil.so )# 添加头文件路径到编译器的头文件搜索路径下,多个路径以空格分隔
include_directories( ${ffmpeg_headers_DIR} )
link_directories(${ffmpeg_libs_DIR} )
link_directories(/usr/lib)set(CMAKE_CXX_STANDARD 14)
add_executable(ffmpeg_demo main.cpp)
target_link_libraries(${PROJECT_NAME}  avcodec avformat avutil swresample swscale swscale avfilter )

2. main.cpp

#include <stdio.h>#ifdef __cplusplus
extern "C"
{#endif
#include "libavcodec/avcodec.h"
#include "libavformat/avformat.h"
#include "libavutil/imgutils.h"
#include "libavutil/pixfmt.h"
#include "libavutil/avutil.h"
#include "libavutil/log.h"
#include "libswscale/swscale.h"
#ifdef __cplusplus
}
#endif
using namespace std;int main(){return 0;
}

3. 编译运行

cd /home/xundh/ffmpegrtsp
mkdir build
cd build
cmake ..
make
./ffmpeg_demo

音视频开发6. 搭建 ffmpeg Linux远程开发环境相关推荐

  1. Eclipse 进行Linux远程开发

    Eclipse 进行Linux远程开发   Eclipse可以进行Linux远程开发,提前是安装了远程的包,如果没有需要返回到上篇文章重新安装包,同时如果进行C/C++开发,包也需要. 首先打开Sho ...

  2. 音视频基本概念和FFmpeg的简单入门(新手友好+FFmpeg资料分享)

    音视频基本概念和FFmpeg的简单入门 基本概念 容器/文件(Conainer/File): 即特定格式的多媒体文件,一般来说一个视频文件是由视频,音频,字幕等按特定的格式/规则组合到一起的,常见如: ...

  3. 音视频命令转换工具 - FFmpeg

    随着自媒体兴起,许多人会自拍视频或者找视频素材裁剪,配上背景音乐或解说,加上各种特效边框,处理后再生成新的视频文件,发布到各大平台.生成的原始视频文件都很大,我们需要转换格式或者压缩大小,便于上传或者 ...

  4. Android音视频学习系列(七) — 从0~1开发一款Android端播放器(支持多协议网络拉流本地文件)

    系列文章 Android音视频学习系列(一) - JNI从入门到精通 Android音视频学习系列(二) - 交叉编译动态库.静态库的入门 Android音视频学习系列(三) - Shell脚本入门 ...

  5. 音视频系列2:ffmpeg将H.264解码为RGB

    音视频系列2:ffmpeg将H.264解码为RGB 前言 源码 前言 喜大普奔,终于更新啦,上期说到,如何使用ffmpeg+rtmp进行拉流,不熟悉的小伙伴们,可以先看上一期.今天我们要实现的是使用f ...

  6. AVI音视频封装格式学习(四)——linux系统C语言AVI格式音视频封装应用

    拖了很久的AVI音视频封装实例,花了一天时间终于调完了,兼容性不是太好,但作为参考学习使用应该没有问题.RIFF和AVI以及WAV格式,可以参考前面的一些文章.这里详细介绍将一个H264视频流和一个2 ...

  7. 详解音视频直播平台搭建中的低延时

    详解音视频直播平台搭建中的低延时 音视频实时通讯的应用场景已经随处可见,从"吃鸡"的语音对讲.直播连麦.直播答题组队开黑,再到银行视频开户等.对于开发者来讲,除了关注如何能快速实现 ...

  8. ffmpeg rtmp 花屏_音视频系列6:ffmpeg多线程拉流

    本文与csdn博客同步:https://blog.csdn.net/Hanghang_/article/details/105302384,欢迎关注,点赞,评论. 前言 本篇博客是音视频系列的续集与改 ...

  9. 挑战360无死角讲解Linux内核 进程管理,调度器的5种实现丨C++后端开发丨C/C++Linux服务器开发丨内核开发丨网络编程

    挑战360无死角讲解 进程管理,调度器的5种实现 1. 8500行 CFS是什么 2. RT调度器使用场景 3. IDLE/Dealine调度器 视频讲解如下,点击观看: 挑战360无死角讲解Linu ...

最新文章

  1. 科学成为时尚的可行办法
  2. AngularJS Scope(作用域)
  3. 掌握这几种 Markdown 语法你就够了
  4. python自动安装apk文件
  5. 如何利用.pdb文件去调试
  6. 丁可以组什么词_有哪些量词可以用来描述生意经?
  7. JAVA ThreadPoolExecutor线程池
  8. codevs 1729 单词查找树
  9. PaaS平台OpenShift企业部署的“脑图”
  10. 电机学重读(一)基础知识
  11. 武忠祥<高等数学辅导讲义> 第一章
  12. 怎么把WORD中插入的图片改为统一尺寸的,看这里,文档中图片怎么改成同样大小
  13. 静水流深,闻喧享静 空山鸣响,见惯司空
  14. CentOS6.5_x64安装VNCserver
  15. codeforces 129E/128C Games with Rectangle
  16. GitHub上提交代码之写给小白
  17. 直播继续搅局双11?
  18. 人人网的相册里图片上传功能是怎样实现的
  19. javaWeb项目设置error页面
  20. 01-学习笔记(webstorm自定义模板代码)【新手上路,多多关照】

热门文章

  1. Excel2016 打开表格里面图片显示#name?
  2. 浏览器访问ftp服务器的文件时间,win10文件浏览器访问ftp服务器
  3. Dynamo如何简单方便地计算点到直线或者平行直线之间的距离
  4. 前程无忧发布2023年中国大学生喜爱雇主榜单,140家企业上榜 | 美通社头条
  5. Android DataBinding双向绑定原理
  6. win10共享打印机(连接共享打印机的两种方法,IP地址变化的连接方法)
  7. MariaDB安装手册
  8. Unity之QTE快速反应事件
  9. 【Python笔记】之Python构造函数是否可以重载
  10. Web开发学习3.11