网站首页 > 资源文章 正文
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库。
猜你喜欢
- 2025-01-09 原来FFmpeg这么有意思 (二)
- 2025-01-09 音视频开发7. ffmpeg 几个重要结构体
- 2025-01-09 超详细的手把手下载安装FFmpeg整个过程,你学会了吗?
- 2025-01-09 mPEG-DOPE 甲氧基聚乙二醇二油酰基磷脂酰乙醇胺
- 2025-01-09 音视频开发-FFmpeg详解
- 2025-01-09 ffmpeg、ffprobe、ffplay 常用参数及命令行示例说明
- 2025-01-09 音视频开发-ffmpeg指令(2)
- 2025-01-09 FFmpeg/WebRTC/RTMP 音视频流媒体高级开发知识点总结
- 2025-01-09 msys2编译FFmpeg全网最详细步骤
- 2025-01-09 如何使用FFmpeg精确剪辑视频
你 发表评论:
欢迎- 05-1430个在线地图瓦片URL分享
- 05-1425个在线地图瓦片URL分享
- 05-14PixelStyle for Mac(mac照片编辑器)
- 05-14一篇文章带你了解CSS3 3D 转换知识
- 05-14我们的世界是假的?马斯克:我们生活在高文明模拟的矩阵游戏中
- 05-14【视觉AI的基石】斯坦福大学笔记!带你吃透卷积神经网络 (CNN)
- 05-14潮流 | 通过AAPE的新价目,无虑入荷未来主义服饰
- 05-14身份证查询服务API:准确识别身份证信息
- 最近发表
- 标签列表
-
- 电脑显示器花屏 (79)
- 403 forbidden (65)
- linux怎么查看系统版本 (54)
- 补码运算 (63)
- 缓存服务器 (61)
- 定时重启 (59)
- plsql developer (73)
- 对话框打开时命令无法执行 (61)
- excel数据透视表 (72)
- oracle认证 (56)
- 网页不能复制 (84)
- photoshop外挂滤镜 (58)
- 网页无法复制粘贴 (55)
- vmware workstation 7 1 3 (78)
- jdk 64位下载 (65)
- phpstudy 2013 (66)
- 卡通形象生成 (55)
- psd模板免费下载 (67)
- shift (58)
- localhost打不开 (58)
- 检测代理服务器设置 (55)
- frequency (66)
- indesign教程 (55)
- 运行命令大全 (61)
- ping exe (64)
本文暂时没有评论,来添加一个吧(●'◡'●)