mac下搭建CLion-FFmpeg开发环境

brew安装ffmpeg

brew install ffmpeg
这里如果安装失败,可以尝试切换brew源

确定ffmpeg安装位置

brew info ffmpeg

CLion新建c工程

修改CMakeLists.txt

cmake_minimum_required(VERSION 3.20)
project(ffmpeg_base C)

set(CMAKE_C_STANDARD 11)

# FFmpeg的安装目录,可以通过命令"brew info ffmpeg"获取
set(FFMPEG_DIR /usr/local/Cellar/ffmpeg/4.4_2)
# 头文件搜索路径
include_directories(${FFMPEG_DIR}/include/)
# 动态链接库或静态链接库的搜索路径
link_directories(${FFMPEG_DIR}/lib/)

add_executable(ffmpeg_base main.c)
target_link_libraries(ffmpeg_base
        swscale swresample avcodec avutil avdevice avfilter avformat
        )

运行main.c

这里使用ffmpeg官方提供的获取元数据示例程序(metadata.c)来测试ffmpeg是否配置成功

/**
 * @file
 * Shows how the metadata API can be used in application programs.
 * @example metadata.c
 */

#include <stdio.h>

#include <libavformat/avformat.h>
#include <libavutil/dict.h>

int main (int argc, char **argv) {
  AVFormatContext *fmt_ctx = NULL;
  AVDictionaryEntry *tag = NULL;
  int ret;

    if (argc != 2) {
        printf("usage: %s <input_file>\n"
               "example program to demonstrate the use of the libavformat metadata API.\n"
               "\n", argv[0]);
        return 1;
    }

  if ((ret = avformat_open_input(&fmt_ctx, argv[1], NULL, NULL)))
    return ret;

  if ((ret = avformat_find_stream_info(fmt_ctx, NULL)) < 0) {
    av_log(NULL, AV_LOG_ERROR, "Cannot find stream information\n");
    return ret;
  }

  while ((tag = av_dict_get(fmt_ctx->metadata, "", tag, AV_DICT_IGNORE_SUFFIX)))
    printf("%s=%s\n", tag->key, tag->value);

  avformat_close_input(&fmt_ctx);
  return 0;
}
posted @ 2021-10-14 11:47  柠檬水请加冰  阅读(605)  评论(0编辑  收藏  举报