zlmediakt 安装编译

音视频开发 ZLMediaKit库使用 编译安装_p2p音视频开发的博客-CSDN博客

1、#国内用户推荐从同步镜像网站gitee下载
git clone --depth 1 https://gitee.com/xia-chu/ZLMediaKit
cd ZLMediaKit
#千万不要忘记执行这句命令
git submodule update --init
# 安装gcc
sudo apt-get install build-essential
# 安装cmake
sudo apt-get install cmake
# 安装依赖库
#除了openssl,其他其实都可以不安装
sudo apt-get install libssl-dev -y
sudo apt-get install libsdl-dev -y
sudo apt-get install libavcodec-dev -y
sudo apt-get install libavutil-dev -y
sudo apt-get install ffmpeg -y
# 构建和编译项目
cd ZLMediaKit
mkdir build
cd build
cmake ..
# 如果编译release版本 使用 cmake .. -DCMAKE_BUILD_TYPE=Release
make -j4

2、配置转码拆帧

   修改根目录下  CmakeLists.txt

   修改option(ENABLE_FFMPEG "Enable FFmpeg" OFF)为ON

   修改这个为ON。option(ENABLE_X264 "Enable x264" ON)

如果已经生成了makefile ,

需要将build文件夹删除,重新创建这个文件夹,执行cmake ..重新生成makefile

在生成makefile过程中,可以查看到

-- add c api tester: player_opencv

表示已经将拆帧相关文件参与到编译过程中了。

也可以通过检查release debug 是否生成可执行文件api_tester_pusher_opencv来确认编译是否成功。

因为新增了2个文件的问题,导致编译失败。

CMakeFiles/MediaServer.dir/FFmpegTranscode.cpp.o:在函数‘on_track_frame_out(void*, mk_frame_t*)’中:
/home/hisense/zlmediakit/zlmediakit/ZLMediaKit/server/FFmpegTranscode.cpp:26:对‘mk_decoder_decode’未定义的引用
CMakeFiles/MediaServer.dir/FFmpegTranscode.cpp.o:在函数‘on_frame_decode(void*, mk_frame_pix_t*)’中:
/home/hisense/zlmediakit/zlmediakit/ZLMediaKit/server/FFmpegTranscode.cpp:31:对‘mk_frame_pix_get_av_frame’未定义的引用
/home/hisense/zlmediakit/zlmediakit/ZLMediaKit/server/FFmpegTranscode.cpp:31:对‘mk_get_av_frame_width’未定义的引用
/home/hisense/zlmediakit/zlmediakit/ZLMediaKit/server/FFmpegTranscode.cpp:32:对‘mk_frame_pix_get_av_frame’未定义的引用
/home/hisense/zlmediakit/zlmediakit/ZLMediaKit/server/FFmpegTranscode.cpp:32:对‘mk_get_av_frame_height’未定义的引用
/home/hisense/zlmediakit/zlmediakit/ZLMediaKit/server/FFmpegTranscode.cpp:36:对‘mk_swscale_input_frame’未定义的引用
/home/hisense/zlmediakit/zlmediakit/ZLMediaKit/server/FFmpegTranscode.cpp:46:对‘mk_frame_pix_get_av_frame’未定义的引用
/home/hisense/zlmediakit/zlmediakit/ZLMediaKit/server/FFmpegTranscode.cpp:46:对‘mk_get_av_frame_dts’未定义的引用
/home/hisense/zlmediakit/zlmediakit/ZLMediaKit/server/FFmpegTranscode.cpp:46:对‘mk_log_printf’未定义的引用
CMakeFiles/MediaServer.dir/FFmpegTranscode.cpp.o:在函数‘on_mk_play_event_func(void*, int, char const*, mk_track_t**, int)’中:
/home/hisense/zlmediakit/zlmediakit/ZLMediaKit/server/FFmpegTranscode.cpp:54:对‘mk_log_printf’未定义的引用
/home/hisense/zlmediakit/zlmediakit/ZLMediaKit/server/FFmpegTranscode.cpp:57:对‘mk_track_is_video’未定义的引用
/home/hisense/zlmediakit/zlmediakit/ZLMediaKit/server/FFmpegTranscode.cpp:58:对‘mk_track_codec_name’未定义的引用
/home/hisense/zlmediakit/zlmediakit/ZLMediaKit/server/FFmpegTranscode.cpp:58:对‘mk_log_printf’未定义的引用
/home/hisense/zlmediakit/zlmediakit/ZLMediaKit/server/FFmpegTranscode.cpp:59:对‘mk_decoder_create’未定义的引用
/home/hisense/zlmediakit/zlmediakit/ZLMediaKit/server/FFmpegTranscode.cpp:60:对‘mk_decoder_set_cb’未定义的引用
/home/hisense/zlmediakit/zlmediakit/ZLMediaKit/server/FFmpegTranscode.cpp:62:对‘mk_track_add_delegate’未定义的引用
/home/hisense/zlmediakit/zlmediakit/ZLMediaKit/server/FFmpegTranscode.cpp:66:对‘mk_log_printf’未定义的引用
CMakeFiles/MediaServer.dir/FFmpegTranscode.cpp.o:在函数‘on_mk_shutdown_func(void*, int, char const*, mk_track_t**, int)’中:
/home/hisense/zlmediakit/zlmediakit/ZLMediaKit/server/FFmpegTranscode.cpp:71:对‘mk_log_printf’未定义的引用
CMakeFiles/MediaServer.dir/FFmpegTranscode.cpp.o:在函数‘FFmpegTranscode::play(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, std::function<void (toolkit::SockException const&)> const&)’中:
/home/hisense/zlmediakit/zlmediakit/ZLMediaKit/server/FFmpegTranscode.cpp:93:对‘mk_player_create’未定义的引用
/home/hisense/zlmediakit/zlmediakit/ZLMediaKit/server/FFmpegTranscode.cpp:94:对‘mk_swscale_create’未定义的引用
/home/hisense/zlmediakit/zlmediakit/ZLMediaKit/server/FFmpegTranscode.cpp:95:对‘mk_player_set_on_result’未定义的引用
/home/hisense/zlmediakit/zlmediakit/ZLMediaKit/server/FFmpegTranscode.cpp:96:对‘mk_player_set_on_shutdown’未定义的引用
/home/hisense/zlmediakit/zlmediakit/ZLMediaKit/server/FFmpegTranscode.cpp:97:对‘mk_player_play’未定义的引用
collect2: error: ld returned 1 exit status
server/CMakeFiles/MediaServer.dir/build.make:274: recipe for target '../release/linux/Debug/MediaServer' failed

这是链接的时候,找不到对应的库导致的。

在build/server/CMakeFiles/MediaServer.dir里面有个link.txt文件

添加库依赖 ../../release/linux/Debug/libmk_api.so 还是编译不过,--编译目录搞错了。

-lmk_api.so 将这个so库安装到/usr/lib/目录下即可。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值