FFmpeg build com V4L2

0

Eu quero usar o ffmpeg para acessar minha webcam. Eu tentei:

ffmpeg -f v4l2 -i /dev/video0 output.mp4

mas estou recebendo um erro:

Unknown input format: 'v4l2'

Da mesma forma, com video4linux2 em vez de v4l2 . Eu, portanto, assumo que minha compilação do ffmpeg está faltando v4l2 . Vejo que existe uma opção de configuração --enable-libv4l2 ( link ). Eu adicionei isso à minha configuração, mas executando configure eu recebo:

ERROR: "libv4l2 not found using pkg-config"

Como adiciono isso à minha compilação? Estou seguindo o guia no link com algumas modificações para incluir descodificadores específicos, etc.

Eu entendo que o libv4l2 pode vir com o pacote do Ubuntu libv4l-dev . Instalando-o com:

sudo apt-get install libv4l-dev

não parece afetar meu problema. Eu posso ver /usr/lib/x86_64-linux-gnu/pkgconfig/libv4l2.pc , que eu acho que é o arquivo que eu preciso. Talvez eu só precise apontar o ffmpeg / pkg-config para ele nas opções de configuração? Algo como:

PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig" ./configure ...

(Não funciona). Modificando --extra-cflags ou --extra-ldflags para apontar para / libs? Não consegui fazer isso funcionar também. O guia de criação do FFmpeg vinculado mantém todos os pacotes em um diretório ffmpeg_build na minha pasta pessoal. Devo instalar o libv4l-dev de alguma forma?

Cauda do config.log:

END /tmp/ffconf.5wdQhyZ1.c
gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -I/home/jon/ffmpeg_build/include -std=c99 -fomit-frame-pointer -pthread -c -o /tmp/ffconf.LGU7tq3n.o /tmp/ffconf.5wdQhyZ1.c
gcc -L/home/jon/ffmpeg_build/lib -Wl,--as-needed -Wl,-z,noexecstack -o /tmp/ffconf.Fhn6FivT /tmp/ffconf.LGU7tq3n.o -lv4l2 -lpthread -lv4lconvert -lrt -lm -ljpeg -lmp3lame -lfdk-aac -lm -lz -pthread
/usr/bin/ld: cannot find -ljpeg
collect2: error: ld returned 1 exit status
ERROR: libv4l2 not found using pkg-config

Parece que falta uma biblioteca jpeg:

sudo apt-get install libjpeg-dev

e compila OK, mas retornei ao erro original de:

Unknown input format: 'v4l2'

Ao executar o primeiro comando.

    
por Jon G 05.01.2016 / 16:30

1 resposta

1

Eu tinha a opção de configuração --disable-indevs e perdi a opção --enable-indev=v4l2 . Adicionar este último permite que minha compilação acesse minha webcam.

    
por 05.01.2016 / 18:23