macOS下基于FFMPEG的播放器(一)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/glw0223/article/details/89328359

macOS下基于FFMPEG的播放器(一)

1、编译ffmpeg

./configure --disable-optimizations --prefix=/Users/gaoliwen/work/ffmpeg_temp --enable-static --disable-shared

编译

make -j 
make install

这是安装后的文件
在这里插入图片描述

2、建立xcode工程

  • 建立一个命令行工程,这是main.cpp
//
//  main.cpp
//  saishizhichuang
//
//  Created by gaoliwen on 2019/4/15.
//  Copyright © 2019 gaoliwen. All rights reserved.
//

#include <iostream>
extern "C"
{
 #include<libavformat/avformat.h>
}

int main(int argc, const char * argv[]) {
    // insert code here...
    std::cout << "Hello, World!\n";
    char filepath[]="/Users/gaoliwen/work/testfile/gaoliwen.flv";
    
    AVFormatContext *pFromatCtx = nullptr;
    pFromatCtx = avformat_alloc_context();
    int ret = avformat_open_input(&pFromatCtx, filepath, nullptr, nullptr);
    
    std::cout<<"result is "<< ret<<std::endl;
    
    avformat_close_input(&pFromatCtx);
    avformat_free_context(pFromatCtx);
    pFromatCtx = nullptr;
    
    return 0;
}
  • 添加头文件和库的查找地址

    这里的路径就是上面ffmpeg的安装路径。

  • 添加依赖库

注:开始时,不知道依赖哪些库,只能编译,提示缺少啥,就在这里添加有行。

  • 编译、运行
    cmd+b:编译
    cmd+r:运行
    运行结果:
    在这里插入图片描述

3、makefile测试

  • main函数代码
#include <stdio.h>

extern "C"
{
#include "libavcodec/avcodec.h"//用c++调用,所以这里使用extern "C"
}

int main()
{
    printf("hello world\r\n");
    printf("%s\n", avcodec_configuration());
    return 0;
}
  • 在xcode工程里开发依赖的framework

拷贝出来就是

 -liconv -llzma -lbz2 -lz -lavcodec -lavdevice -lavfilter -lavformat -lavutil -lswresample -lswscale -framework MediaToolbox -framework CoreMedia -framework Foundation -framework AVFoundation -framework CoreFoundation -framework SecurityFoundation -framework CoreImage -framework CoreVideo -framework CoreAudio -framework VideoToolbox -framework AudioToolbox
  • 编译
    clang 和 g++都行
g++ -I /Users/gaoliwen/work/ffmpeg_temp/include -o main main.cpp /Users/gaoliwen/work/ffmpeg_temp/lib/libavcodec.a /Users/gaoliwen/work/ffmpeg_temp/lib/libavutil.a -liconv -llzma -lbz2 -lz -lavcodec -lavdevice -lavfilter -lavformat -lavutil -lswresample -lswscale -framework MediaToolbox -framework CoreMedia -framework Foundation -framework AVFoundation -framework CoreFoundation -framework SecurityFoundation -framework CoreImage -framework CoreVideo -framework CoreAudio -framework VideoToolbox -framework AudioToolbox
  • 结果

猜你喜欢

转载自blog.csdn.net/glw0223/article/details/89328359
今日推荐