如何使用libsrt(安全可靠传输)协议配置ffmpeg?

时间:2019-03-15 05:43:16

标签: ffmpeg protocols configuration-files patch pkg-config

我想在Linux-Ubuntu OS上使用libsrt(安全可靠传输)协议配置ffmpeg,我遵循了link

中的步骤

但是当运行$./configure --enable-libsrt命令时,它给了我一个错误:

ERROR: srt >= 1.3.0 not found using pkg-config

我修改了配置文件,它执行了上面的命令,但是当我运行$ make命令时,它会出现以下错误:

LD  ffmpeg_g
libavformat/libavformat.so: undefined reference to `srt_socket'
libavformat/libavformat.so: undefined reference to `srt_bind'
libavformat/libavformat.so: undefined reference to `srt_getsockopt'
libavformat/libavformat.so: undefined reference to `srt_close'
libavformat/libavformat.so: undefined reference to `srt_epoll_add_usock'
libavformat/libavformat.so: undefined reference to `srt_startup'
libavformat/libavformat.so: undefined reference to `srt_connect'
libavformat/libavformat.so: undefined reference to `srt_epoll_release'
libavformat/libavformat.so: undefined reference to `srt_listen'
libavformat/libavformat.so: undefined reference to `srt_getlasterror'
libavformat/libavformat.so: undefined reference to `srt_getlasterror_str'
libavformat/libavformat.so: undefined reference to `srt_cleanup'
libavformat/libavformat.so: undefined reference to `srt_setsockopt'
libavformat/libavformat.so: undefined reference to `srt_sendmsg'
libavformat/libavformat.so: undefined reference to `srt_clearlasterror'
libavformat/libavformat.so: undefined reference to `srt_epoll_wait'
libavformat/libavformat.so: undefined reference to `srt_epoll_remove_usock'
libavformat/libavformat.so: undefined reference to `srt_epoll_create'
libavformat/libavformat.so: undefined reference to `srt_recvmsg'
libavformat/libavformat.so: undefined reference to `srt_accept'
collect2: error: ld returned 1 exit status
Makefile:108: recipe for target 'ffmpeg_g' failed
make: *** [ffmpeg_g] Error 1

使用ffmpeg启用libsrt的确切步骤是什么?我有什么想念的吗?我必须添加到现有ffmpeg源文件中的补丁吗?

先谢谢了!

1 个答案:

答案 0 :(得分:2)

answer you referred假设提问者正在关注Ubuntu compile guide on the FFmpeg Wiki(因为他们声称这样做了)。编译指南将variety of reasons的外部库“安装”到~/ffmpeg_build中。该答案中的libsrt指令也适用于Wiki文章。因此,期望您在编译ffmpeg时将使用Wiki中所示的其他编译选项来处理此问题。

  1. 撤消对configure所做的任何更改。
  2. 按照链接的答案进行操作,如果还没有的话,请编译libsrt。
  3. 现在编译ffmpeg

    make distclean
    PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --enable-libsrt --pkg-config-flags="--static"
    

或者,如果您不想使用大多数这些额外的选项,则在编译libsrt时省略-DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build"