Ошибка передачи веб-камеры Debian ffmpeg на удаленный сервер

У меня есть черный бигльбон, с которого я пытаюсь транслировать живое видео на компьютер OSX. Зелье потокового клиента, похоже, работает, если я указываю его на локальный ffserver.

root@beaglebone:~# ffmpeg -f v4l2 -s 320x240 -r 30 -i /dev/video0 http://127.0.0.1:8090/feed1.ffm
ffmpeg version N-78848-gf114839 Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 4.9.2 (Debian 4.9.2-10)
  configuration: --prefix=/root/ffmpeg_build --pkg-config-flags=--static --extra-cflags='-O3 -I/root/ffmpeg_build/include -mfpu=neon -mtune=cortex-a8' --extra-ldflags=-L/root/ffmpeg_build/lib --bindir=/root/bin --enable-gpl --enable-libass --enable-libfreetype --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree
  libavutil      55. 19.100 / 55. 19.100
  libavcodec     57. 27.101 / 57. 27.101
  libavformat    57. 27.100 / 57. 27.100
  libavdevice    57.  0.101 / 57.  0.101
  libavfilter     6. 38.100 /  6. 38.100
  libswscale      4.  0.100 /  4.  0.100
  libswresample   2.  0.101 /  2.  0.101
  libpostproc    54.  0.100 / 54.  0.100
Input #0, video4linux2,v4l2, from '/dev/video0':
  Duration: N/A, start: 101977.117890, bitrate: 36864 kb/s
    Stream #0:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 320x240, 36864 kb/s, 30 fps, 30 tbr, 1000k tbn, 1000k tbc
Output #0, ffm, to 'http://127.0.0.1:8090/feed1.ffm':
  Metadata:
    creation_time   : 2016-03-03 05:32:52
    encoder         : Lavf57.27.100
    Stream #0:0: Video: mjpeg, yuv422p, 320x240, q=2-31, 100 kb/s, 30 fps, 1000k tbn, 20 tbc
    Metadata:
      encoder         : Lavc57.27.101 mjpeg
    Side data:
      cpb: bitrate max/min/avg: 200000/0/100000 buffer size: 200000 vbv_delay: -1
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo (native) -> mjpeg (native))
Press [q] to stop, [?] for help

Однако, если я укажу его на удаленный (мой компьютер) ffserver, он выдает ошибку

root@beaglebone:~# ffmpeg -f v4l2 -s 320x240 -r 30 -i /dev/video0 http://192.168.200.40:8090/feed1.ffm
ffmpeg version N-78848-gf114839 Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 4.9.2 (Debian 4.9.2-10)
  configuration: --prefix=/root/ffmpeg_build --pkg-config-flags=--static --extra-cflags='-O3 -I/root/ffmpeg_build/include -mfpu=neon -mtune=cortex-a8' --extra-ldflags=-L/root/ffmpeg_build/lib --bindir=/root/bin --enable-gpl --enable-libass --enable-libfreetype --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree
  libavutil      55. 19.100 / 55. 19.100
  libavcodec     57. 27.101 / 57. 27.101
  libavformat    57. 27.100 / 57. 27.100
  libavdevice    57.  0.101 / 57.  0.101
  libavfilter     6. 38.100 /  6. 38.100
  libswscale      4.  0.100 /  4.  0.100
  libswresample   2.  0.101 /  2.  0.101
  libpostproc    54.  0.100 / 54.  0.100
Input #0, video4linux2,v4l2, from '/dev/video0':
  Duration: N/A, start: 102012.942038, bitrate: 36864 kb/s
    Stream #0:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 320x240, 36864 kb/s, 30 fps, 30 tbr, 1000k tbn, 1000k tbc
[ffm @ 0x1427df0] no encoder found for codec id 141
http://192.168.200.40:8090/feed1.ffm: Invalid argument

Похоже, что 141-й кодек в этом перечислении AVCodecID — это AV_CODEC_ID_VP8 /AV_CODEC_ID_PICTOR, в зависимости от того, определен ли AV_CODEC_ID_MPEG2VIDEO_XVMC? https://github.com/FFmpeg/FFmpeg/blob/master/libavcodec/avcodec.h

Также включая мою конфигурацию ffserver.

HTTPPort 8090 
HTTPBindAddress 0.0.0.0
MaxHTTPConnections 2000
MaxClients 1000
MaxBandwidth 10000           

CustomLog -
NoDaemon                     

<Feed feed1.ffm>             
   File ./feed1.ffm          
   Truncate 
   ACL allow localhost        
   ACL allow 192.168.200.0 192.168.200.255      
</Feed>

<Stream test.mjpg>
   Feed feed1.ffm
   Format mpjpeg
   NoAudio
   VideoSize 320x240           
   VideoFrameRate 30         
   StartSendOnKey
   VideoBitRate 400           
   VideoIntraOnly             
   Strict -1                  
   PreRoll 0                  
</Stream>

<Stream status.html>                    
   Format status
   ACL allow localhost
   ACL allow 192.168.0.0 192.168.255.255
</Stream>

В любом случае, я понятия не имею, как подойти к этой проблеме. Любые указатели будут оценены.


person James    schedule 03.03.2016    source источник


Ответы (1)


Вы пытались проверить, не на стороне ли сервера проблема? Вы использовали какой-то пинг в http://192.168.200.40:8090?? Сервер отвечает? Я говорю это потому, что это может быть вызвано, например, проблемой с брандмауэром.

person mmelotti    schedule 13.03.2016
comment
Спасибо, но без кубиков. Это все локально без брандмауэра. Я добился большего успеха с gstreamer. - person James; 13.04.2016