FFmpeg 开发环境搭建及第一个程序 Hello FFmpeg 编写
程序员文章站
2022-04-09 17:09:43
1. FFmpeg 的安装 默认会将 FFmpeg 安装至 /usr/local 目录下(可通过 configure 使用 “ prefix=目录” 修改安装目录), 安装完成后分别会在 /usr/local 下的 bin、include、lib、share 四个目录下生成 FFmpeg 的二进制可 ......
1. ffmpeg 的安装
./configure make make install
默认会将 ffmpeg 安装至 /usr/local 目录下(可通过 configure 使用 “-prefix=目录” 修改安装目录),
安装完成后分别会在 /usr/local 下的 bin、include、lib、share 四个目录下生成 ffmpeg 的二进制可执行文件、头文件、编译链接库、文档。
后面开发我们会用到 include、lib 里的头文件和编译链接库。
2. ffmpeg 版 hello world
//testffmpeg.c #include <stdio.h> #include <libavcodec/avcodec.h> #include <libavformat/avformat.h> int main(int argc, char *argv[]) { printf("hello ffmpeg\n"); avformatcontext *pformatctx = avformat_alloc_context(); if (avformat_open_input(&pformatctx, argv[1], null, null)) { fprintf(stderr, "open input failed\n"); return -1; } if (avformat_find_stream_info(pformatctx, null) < 0) { fprintf(stderr, "find stream info failed\n"); return -1; } int videostream = av_find_best_stream(pformatctx, avmedia_type_video, -1, -1, null, 0); printf("nb:%d, url:%s, time:%ld, duration:%ld, bitrate:%ld, videostream:%d\n", pformatctx->nb_streams, pformatctx->url, pformatctx->start_time, pformatctx->duration, pformatctx->bit_rate, videostream); return 0; }
3. makefile 编写
all:helloff cc=gcc clibsflags=-lavformat -lavcodec -lavutil -lswresample -lz -llzma -lpthread -lm ffmpeg=/usr/local cflags=-i$(ffmpeg)/include/ ldflags = -l$(ffmpeg)/lib/ helloff:helloff.o $(cc) -o helloff helloff.o $(clibsflags) $(cflags) $(ldflags) helloff.o:test.c $(cc) -o helloff.o -c test.c $(clibsflags) $(cflags) $(ldflags) clean: rm helloff helloff.o
ffmpeg 版本
[ubuntu@ubuntu-virtual-machine testffmpeg]$ ffmpeg -version ffmpeg version 4.1.3 copyright (c) 2000-2019 the ffmpeg developers built with gcc 4.8 (ubuntu 4.8.4-2ubuntu1~14.04.3) configuration: libavutil 56. 22.100 / 56. 22.100 libavcodec 58. 35.100 / 58. 35.100 libavformat 58. 20.100 / 58. 20.100 libavdevice 58. 5.100 / 58. 5.100 libavfilter 7. 40.101 / 7. 40.101 libswscale 5. 3.100 / 5. 3.100 libswresample 3. 3.100 / 3. 3.100
上一篇: AngularJS中实现动画效果的方法
下一篇: react中的插槽和路由导航守卫