ffmpeg开发环境搭建(Linux)

news/2025/2/26 13:47:02

本文将介绍如何在ubuntu16环境下搭建ffmpeg的开发环境,根本目标是编译安装ffmpeg并获得lib动态链接库与include头文件

安装:

1、如果需要用ffplay播放音视频,请先安装依赖sdl2:

下载sdl2源码:http://libsdl.org/release/

image-20210413103144211

tar -xvf xxx.tar.gz
cd xxx
./configure --enable-shared --prefix=/opt/sdl2
make && sudo make install

// --prefix可指定bin、lib、include等文件夹的安装目录


2、下载ffmpeg源码:http://www.ffmpeg.org/download.html

./configure --enable-shared --prefix=/opt/ffmpeg

make	//时间较长
sudo make install

3、将/opt/ffmpeg/bin下的ffmpeg, ffplay, ffprobe三个可执行文件,建立 软链接到/usr/local/bin,如sudo ln -s /opt/ffmpeg/bin/ffplay /usr/local/bin/ffplay

4、最后vim /etc/ld.so.config/ffmpeg.conf,写入/opt/ffmpeg/lib,添加配置动态库搜索路径。

image-20210413154135576

最后使用命令行测试ffplay, ffprobe, ffmpeg是否安装成功。

ffplay播放视频或音频,ffprobe查看视频信息,ffmpeg进行格式转换,视频剪切等操作。


测试:

将/opt/ffmpeg下的include文件夹和lib下的.so文件提取出来,放到我们的工作目录
image-20210415174014352

手动写一个helloworld测试开发环境

#include <stdio.h>
#include "libavcodec/avcodec.h"

int main(int argc, char **argv) {
    printf("printf ffmpeg configuration: ");
    printf("%s\n", avcodec_configuration());
  
    exit(0);
}

编译命令:gcc helloworld.c -I include/ -L lib/ -lavcodec -lavutil

image-20210419125423278


△gcc 编译出现 “ /usr/bin/ld: cannot open output file a.out: Permission denied ” 的解决办法:

提示权限不够,先查看下(ls -all)c文件的权限,后修改文件权限。使用命令:chmod 777 tmp.c修改权限后发现仍然提示权限不够。于是想到可能要修改目录或文件的所有者和属组


其它补充:

/opt/ffmpeg/lib下除了.so文件,还有一个pkgconfig目录,里面有不少.pc文件,这些文件有什么作用呢?

image-20210413105512576

在bash配置(~/.bashrc)中添加下行,将该子文件夹加入pkg-config环境变量PKG_CONFIG_PATH作为搜索路径:

export PKG_CONFIG_PATH=/opt/ffmpeg/lib/pkgconfig:/lib/pkgconfig:$PKG_CONFIG_PATH

libavcodec.pc文件告诉系统,可以在/opt/ffmpeg/lib中找到libavcodec.so,可以在/opt/ffmpeg/include中找到xxx头文件。

gcc helloworld.c $(pkg-config --libs --cflags libavcodec libavutil)

http://www.niftyadmin.cn/n/1965470.html

相关文章

哨兵在redis主从与集群上的表现不同

-------------------------------------哨兵主从实验&#xff08;3个&#xff09;&#xff1a;--------------------------------------------------- 实验一&#xff1a;哨兵节点failover主&#xff1a; 当前主为56.33 6379 从为 56.22 6380 哨兵前后状态&#xff1a;[rootmys…

音视频数据处理入门:PCM采样数据处理

PCM播放测试命令 1、如果没有pcm文件&#xff0c;则用mp3或其它文件转换&#xff1a; ffmpeg -i test.mp3 -acodec pcm_s16le -f s16le -ac 2 -ar 44100 test.pcm // -acodec指定编码器&#xff0c;-f强制文件格式&#xff0c;-ar 采样率2、用ffplay播放原始音频采集数据&…

树结构鼠标消息响应事件

1、定义树结构的窗口ID/*#define FiletreeID 101*/ const int FiletreeID 101;2、在映射函数中添加消息映射ON_NOTIFY(NM_CLICK, FiletreeID, OnNMClickTree)3、在头文件中声明函数afx_msg void OnNMClickTree(NMHDR* pNMHDR,LRESULT* pRsult);4、函数具体实现void CFileView::…

音视频数据处理入门:pcm转wav格式

将PCM16LE双声道采样数据转换成WAVE格式音频数据 wave格式(.wav), 是一种无损的音频文件格式, 所有的wav都有一个文件头, 这个文件头包含音频流的编码参数. pcm文件前面加一个wave文件头, 可以封装为.wav格式音频. 代码&#xff1a; #include <stdio.h> #include <st…

R语言-RStudio快捷键总结

一、控制台 功能 Windows & Linux Mac 移动鼠标到控制台 Ctrl2 Ctrl2移动到鼠标命令编辑 Ctrl1 Ctrl1控制台清屏 CtrlL CommandL移动鼠标至第一行 Home CommandLeft移动鼠标至最后一行 End CommandRight历史记录翻滚 Up/Down Up/Down弹出历史记录栏 CtrlUp CommandUp终止…

picgo上传图片失败:Failed to fetch

遇到的问题&#xff1a; 电脑重启后&#xff0c;typora中无法将图片上传到图床&#xff0c;如下图 1、到typora偏好设置中测试“验证图片上传” 2、打开picgo配置文件&#xff08;搜索port&#xff09; 3、找到问题原因&#xff1a; typora中的上传端口与picgo的服务端口不一…

【编写自己的RTOS】先理清楚几个基本问题

一个RTOS具有的基本功能 1. 任务调度策略  2. 内存管理  3. 中断处理  4. 共享资源的访问 1、理解几个基本问题&#xff1a; Q1: RTOS最主要的特性&#xff08;优势&#xff09;是什么? A1: 实时性&#xff0c;不同以往的前后台系统的轮询调度方法&#xff0c;RTOS通过C…

如何优雅地使用 Git

版本树 / graph / network 干净简洁清晰提交信息明确易维护易读举个反例&#xff1a; 举个正例&#xff1a; Git 文件状态 通过 git status 查看 untracked 新文件未加入版本管理unmodifymodifiedstaged 用 git add 暂存git diff --staged 或 git diff --cached 可查看已暂存文…