前端开发入门到精通的在线学习网站

网站首页 > 资源文章 正文

FFmpeg简介及使用入门

qiguaw 2025-01-09 15:44:59 资源文章 21 ℃ 0 评论

FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从头开发的。

官网:https://ffmpeg.org/

具体介绍可以自行查看 ffmpeg百科

项目组成

FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。它包括了领先的音/视频编码库libavcodec等。

libavformat:用于各种音视频封装格式的生成和解析,包括获取解码所需信息以生成解码上下文结构

和读取音视频帧等功能;

libavcodec:用于各种类型声音/图像编解码;

libavutil:包含一些公共的工具函数;

libswscale:用于视频场景比例缩放、色彩映射转换;

libpostproc:用于后期效果处理;

ffmpeg:该项目提供的一个工具,可用于格式转换、解码或电视卡即时编码等;

ffsever:一个 HTTP 多媒体即时广播串流服务器;

ffplay:是一个简单的播放器,使用ffmpeg 库解析和解码,通过SDL显示;

现在我们就来看看怎么在使用。

一、下载并解压FFmpeg

官网:https://ffmpeg.org/

bin:动态链接库

doc: 参考文档

include: 头文件

lib: 静态链接库

二、新建目录helloffmpeg,并在其下新建ffmpeg目录,将解压出来的include和lib目录复制到其下

用Visual Studio Code(以下简称Code)打开

新建main.c和CMakeLists.txt,并分别输入以下代码

main.c

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

int main(int argc, char *argv[])
{
    printf("Hello FFmpeg!\n");
    unsigned codecVersion = avcodec_version();
    printf("Version is: %d", codecVersion);
    
    return 0;
}

CMakeLists.txt

cmake_minimum_required(VERSION 3.25)

project(helloffmpeg VERSION 1.0.0 LANGUAGES C)

include_directories(
    ffmpeg/include
)

link_directories(
    ffmpeg/lib
)

set(SOURCE_DIR
    main.c
)

add_executable(helloffmpeg ${SOURCE_DIR})

target_link_libraries(helloffmpeg
    avcodec avutil swresample
)

如果CMakeLists.txt写完后,没有立即生效,需要手动配置,或者重新启动Code。

手动配置,打开命令面板(Command Palette)

在搜索框中输入c/c++,选择Edit Configurations(UI)

修改编译器的路径:本文用的是gcc(参考文章:Windows上搭建MinGW(免安装版)C/C++编程环境(https://www.jianshu.com/p/991f022af4e5))

修改Include path:增加ffmpeg/include

配置好以后,Code的状态栏下就会变成这个样子

鼠标单击Build

Build

Launch the selected target in the terminal window(在终端窗口中启动选择的目标)

这时候发现没有输出信息,打开build目录,直接双击运行ffmpeg.exe,发现会报错

说明缺少动态,将之前解压的ffmpeg/bin目录的对应文件复制到build目录下

再双击运行helloffmpeg.exe

继续复制avutil-57.dll,swresample-4.dll

再双击发现不再报错,回到Code,再次点击Launch

至此,已经成功在项目中引入FFmpeg库。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表