Ошибка модуля Asterisk app_transcoder для libavcodec.so (неопределенный символ avacodec_init)

Я пытаюсь интегрировать видеошлюз 3G с Asterisk (1.4.0).

Когда я загружаю модуль «app_transcoder.so» (который выполняет фактическое транскодирование видео), затем

астериск зависает и с "астериск -vvvvvc" я получил

звездочка: ошибка поиска символа: /usr/lib/asterisk/modules/app_transcoder.so: неопределенный символ: avcodec_init

Отображение зависимостей app_transcoder.so с помощью «ldd /usr/lib/asterisk/modules/app_transcoder.so» дает:

    linux-vdso.so.1 =>  (0x00007fff851ff000)
    libavcodec.so.54 => /usr/local/lib/libavcodec.so.54 (0x00007f8604ec3000) 
    libswscale.so.2 => /usr/local/lib/libswscale.so.2 (0x00007f8604c6e000)
    libc.so.6 => /lib64/libc.so.6 (0x00007f86048d9000)
    libavutil.so.52 => /usr/local/lib/libavutil.so.52 (0x00007f86046a7000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f860448a000)
    libx264.so.142 => /usr/local/lib/libx264.so.142 (0x00007f86040d1000)
    libgsm.so.1 => /usr/lib/libgsm.so.1 (0x00007f8603ec6000)
    libm.so.6 => /lib64/libm.so.6 (0x00007f8603c42000)
    libz.so.1 => /lib64/libz.so.1 (0x00007f8603a2b000)
    /lib64/ld-linux-x86-64.so.2 (0x0000003b14200000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00007f8603827000)

«avcodec_init» происходит из файла libavcodec.so, но в нем нет символов, как в командах:

nm -a /usr/local/lib/libavcodec.so.54

дает:

nm: /usr/local/lib/libavcodec.so.54: без символов

я следую инструкциям Medooze

ЦенОС-6.4

ffmpeg-1.2.6

звездочка-1.4.0

x264- 0.142x

ptlib-2.6.7

mpeg4ip-1.6.1

Любые советы приветствуются.


person Riad    schedule 09.04.2014    source источник


Ответы (1)


добавьте /usr/local/lib к пути к вашей библиотеке /etc/ld.so.conf

после этого выполните "ldconfig"

перекомпилировать звездочку.

Нашел этот список рассылки ffmpeg: avcodec_init() в настоящее время не используется. Вместо этого используется avcodec_register_all(). Кажется, вам может понадобиться понизить версию ffmpeg.

person moonstruck    schedule 09.04.2014
comment
Спасибо. он был добавлен ранее и перекомпилирован. проблема в файле .so, о котором я упоминал... так как нет символа для функции avcodec_init (поскольку таблица символов должна содержать все определения функций) ldconfig -v | grep libavcodec показывает: ldconfig: /etc/ld.so.conf.d/kernel-2.6.32-431.5.1.el6.x86_64.conf:6: дубликат hwcap 1 Nosegneg libavcodec.so.54 -> libavcodec.so. 54.92.100 ldconfig: /usr/lib/libss7.so.1 не является символической ссылкой - person Riad; 09.04.2014
comment
Только что найденный в списке рассылки ffmpeg avcodec_init() в настоящее время не используется. Вместо этого используется avcodec_register_all(). Кажется, вам может понадобиться понизить версию ffmpeg. - person moonstruck; 10.04.2014
comment
В настоящее время используется avcodec_init(). не раньше. Большое спасибо @moonstruck. Это работало для версии 0.10 ffmpeg. Пожалуйста, добавьте свой комментарий к ответу, который я могу дать вам кредит. - person Riad; 10.04.2014