FFmpeg: компилирование с H264

Модератор: Модераторы разделов

IMB
Сообщения: 2567
ОС: Debian

FFmpeg: компилирование с H264

Сообщение IMB »

Доброго дня!
Необходимо скомпилировать ffmpeg с поддержкой H264, скачаны x264-snapshot-20100110-2245 и последний ffmpeg через svn. Проведена компиляция и инсталляция H264, структура директории:

Код: Выделить всё

$ ls -lR /home/kirill/VideoTest/X264/
/home/kirill/VideoTest/X264/:
total 12
drwxr-xr-x 2 kirill kirill 4096 2010-01-12 12:27 bin
drwxr-xr-x 2 kirill kirill 4096 2010-01-12 12:27 include
drwxr-xr-x 3 kirill kirill 4096 2010-01-12 12:27 lib

/home/kirill/VideoTest/X264/bin:
total 640
-rwxr-xr-x 1 kirill kirill 648983 2010-01-12 12:27 x264

/home/kirill/VideoTest/X264/include:
total 24
-rw-r--r-- 1 kirill kirill 22318 2010-01-12 12:27 x264.h

/home/kirill/VideoTest/X264/lib:
total 1296
-rw-r--r-- 1 kirill kirill 706912 2010-01-12 12:27 libx264.a
lrwxrwxrwx 1 kirill kirill     13 2010-01-12 12:27 libx264.so -> libx264.so.80
-rwxr-xr-x 1 kirill kirill 603139 2010-01-12 12:27 libx264.so.80
drwxr-xr-x 2 kirill kirill   4096 2010-01-12 12:27 pkgconfig

/home/kirill/VideoTest/X264/lib/pkgconfig:
total 4
-rw-r--r-- 1 kirill kirill 242 2010-01-12 12:27 x264.pc

Перед конфигурированием ffmpeg произвёл экспорт CFLAGS и LDFLAGS. Конфигурирую ffmpeg и получаю ошибку - ERROR: libx264 not found.
Последние 50 строк config.err:

Код: Выделить всё

arm_v5t_le-gcc -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -I/home/kirill/VideoTest/X264/include -std=c99 -fomit-frame-pointer -c -o /tmp/ffconf.GZtZMThT.o /tmp/ffconf.LhMtaNna.c
/tmp/ffconf.LhMtaNna.c:1: warning: conflicting types for built-in function 'round'
arm_v5t_le-gcc -L/home/kirill/VideoTest/X264/lib -o /tmp/ffconf.PmGiKowx /tmp/ffconf.GZtZMThT.o -lz -lbz2 -lm
check_func roundf
check_ld
check_cc
BEGIN /tmp/ffconf.LhMtaNna.c
    1   extern int roundf();
    2   int main(void){ roundf(); }
END /tmp/ffconf.LhMtaNna.c
arm_v5t_le-gcc -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -I/home/kirill/VideoTest/X264/include -std=c99 -fomit-frame-pointer -c -o /tmp/ffconf.GZtZMThT.o /tmp/ffconf.LhMtaNna.c
/tmp/ffconf.LhMtaNna.c:1: warning: conflicting types for built-in function 'roundf'
arm_v5t_le-gcc -L/home/kirill/VideoTest/X264/lib -o /tmp/ffconf.PmGiKowx /tmp/ffconf.GZtZMThT.o -lz -lbz2 -lm
check_func truncf
check_ld
check_cc
BEGIN /tmp/ffconf.LhMtaNna.c
    1   extern int truncf();
    2   int main(void){ truncf(); }
END /tmp/ffconf.LhMtaNna.c
arm_v5t_le-gcc -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -I/home/kirill/VideoTest/X264/include -std=c99 -fomit-frame-pointer -c -o /tmp/ffconf.GZtZMThT.o /tmp/ffconf.LhMtaNna.c
/tmp/ffconf.LhMtaNna.c:1: warning: conflicting types for built-in function 'truncf'
arm_v5t_le-gcc -L/home/kirill/VideoTest/X264/lib -o /tmp/ffconf.PmGiKowx /tmp/ffconf.GZtZMThT.o -lz -lbz2 -lm
check_lib x264.h x264_encoder_encode -lx264 -lm
check_header x264.h
check_cpp
BEGIN /tmp/ffconf.LhMtaNna.c
    1   #include <x264.h>
    2   int x;
END /tmp/ffconf.LhMtaNna.c
arm_v5t_le-gcc -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -I/home/kirill/VideoTest/X264/include -std=c99 -fomit-frame-pointer -E -o /tmp/ffconf.GZtZMThT.o /tmp/ffconf.LhMtaNna.c
In file included from /tmp/ffconf.LhMtaNna.c:1:
/home/kirill/VideoTest/X264/include/x264.h:32:4: warning: #warning You must include stdint.h or inttypes.h before x264.h
check_func x264_encoder_encode
check_ld
check_cc
BEGIN /tmp/ffconf.LhMtaNna.c
    1   extern int x264_encoder_encode();
    2   int main(void){ x264_encoder_encode(); }
END /tmp/ffconf.LhMtaNna.c
arm_v5t_le-gcc -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -I/home/kirill/VideoTest/X264/include -std=c99 -fomit-frame-pointer -c -o /tmp/ffconf.GZtZMThT.o /tmp/ffconf.LhMtaNna.c
arm_v5t_le-gcc -L/home/kirill/VideoTest/X264/lib -o /tmp/ffconf.PmGiKowx /tmp/ffconf.GZtZMThT.o -lz -lbz2 -lm -lx264 -lm
/home/kirill/VideoTest/X264/lib/libx264.so: undefined reference to `d26'
/home/kirill/VideoTest/X264/lib/libx264.so: undefined reference to `d22'
/home/kirill/VideoTest/X264/lib/libx264.so: undefined reference to `d2'
/home/kirill/VideoTest/X264/lib/libx264.so: undefined reference to `d20'
/home/kirill/VideoTest/X264/lib/libx264.so: undefined reference to `d24'
/home/kirill/VideoTest/X264/lib/libx264.so: undefined reference to `d0'
collect2: ld returned 1 exit status
ERROR: libx264 not found

Насколько я понимаю библиотека и заголовочные файлы найдены, так в чём проблема?
Спасибо.
Спасибо сказали:
Аватара пользователя
Atolstoy
Сообщения: 1655
Статус: Tux in the rain
ОС: Linux x86_64

Re: FFmpeg: компилирование с H264

Сообщение Atolstoy »

warning You must include stdint.h or inttypes.h before x264.h
Всего лишь 26 литров пива достаточно человеку для удовлетворения ежедневной потребности в кальции. Здоровое питание - это так просто!
http://atolstoy.wordpress.com
Спасибо сказали:
IMB
Сообщения: 2567
ОС: Debian

Re: FFmpeg: компилирование с H264

Сообщение IMB »

Ну, насколько я думаю, это не критично.

Код: Выделить всё

less X264/include/x264.h
...............................................
#ifndef X264_X264_H
#define X264_X264_H

#if !defined(_STDINT_H) && !defined(_STDINT_H_) && \
    !defined(_INTTYPES_H) && !defined(_INTTYPES_H_)
# ifdef _MSC_VER
#  pragma message("You must include stdint.h or inttypes.h before x264.h")
# else
#  warning You must include stdint.h or inttypes.h before x264.h
# endif
#endif

#include <stdarg.h>

#define X264_BUILD 80
.....................................

Тестирование дальше идёт, меня смущает это:

Код: Выделить всё

/home/kirill/VideoTest/X264/lib/libx264.so: undefined reference to `d26'
/home/kirill/VideoTest/X264/lib/libx264.so: undefined reference to `d22'
/home/kirill/VideoTest/X264/lib/libx264.so: undefined reference to `d2'
/home/kirill/VideoTest/X264/lib/libx264.so: undefined reference to `d20'
/home/kirill/VideoTest/X264/lib/libx264.so: undefined reference to `d24'
/home/kirill/VideoTest/X264/lib/libx264.so: undefined reference to `d0'
Спасибо сказали: