Как настроить ffmpeg с протоколом libsrt (безопасный надежный транспорт)? - PullRequest
2 голосов
/ 15 марта 2019

Я хочу настроить ffmpeg с протоколом libsrt (Secure Reliable Transport) на ОС linux-Ubuntu, я следовал инструкциям этой ссылки

Но при запуске команды $./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

Каковы точные шаги для включения libsrt с помощью ffmpeg? Я что-то пропустил? Есть ли какой-нибудь патч, который я должен добавить к существующему источнику ffmpeg?

Заранее спасибо !!!

1 Ответ

2 голосов
/ 15 марта 2019

Ответ , на который вы ссылались , предполагает, что задающий вопрос следовал руководству по компиляции Ubuntu на FFmpeg Wiki (потому что они утверждали, что делают это). Руководство по компиляции «устанавливает» внешние библиотеки в ~/ffmpeg_build по причинам . Инструкции libsrt в этом ответе делают то же самое, чтобы соответствовать статье в вики. Поэтому ожидается, что вы будете использовать дополнительные параметры компиляции, как показано в вики, чтобы справиться с этим при компиляции ffmpeg.

  1. Отменить любые изменения, которые вы внесли в configure.
  2. Следуйте по связанному ответу и скомпилируйте libsrt, если вы этого еще не сделали.
  3. Теперь скомпилируйте ffmpeg.

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

В качестве альтернативы, если вы не хотите использовать большинство этих дополнительных опций, пропустите -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" при компиляции libsrt.

...