Потоковая передача с веб-камеры через USB на плату ARM (i.MX6)

Я хочу транслировать камеру через СЕТЬ. Я подключил веб-камеру USB к плате i.MX6 и хочу транслировать в Ubuntu 14.04/16.04 через сеть.

Кстати, для этого я установил инструменты gstreamer и ffmpeg на плату i.MX6.

Также я могу транслировать веб-камеру USB на ПК с Ubuntu14.04, используя следующие команды ffmpeg. Но это также не работает, если я использую ffplay в другой Ubuntu 16.04, и я не уверен, почему (обе версии ffmpeg одинаковы).

ffmpeg -f v4l2 -i /dev/video0 -preset ultrafast -vcodec libx264 -tune zerolatency -b 900k -f mpegts udp://192.168.0.37:1234

ffplay udp://192.168.0.37:1234

Ubuntu 16.06: (НЕ РАБОТАЕТ)

tus@titus-PC:~/workdir$ ffplay udp://192.168.0.105:1234
ffplay version 2.8.11-0ubuntu0.16.04.1 Copyright (c) 2003-2017 the FFmpeg developers
  built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.4) 20160609
  configuration: --prefix=/usr --extra-version=0ubuntu0.16.04.1 --build-suffix=-ffmpeg --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --cc=cc --cxx=g++ --enable-gpl --enable-shared --disable-stripping --disable-decoder=libopenjpeg --disable-decoder=libschroedinger --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzvbi --enable-openal --enable-opengl --enable-x11grab --enable-libdc1394 --enable-libiec61883 --enable-libzmq --enable-frei0r --enable-libx264 --enable-libopencv
  libavutil      54. 31.100 / 54. 31.100
  libavcodec     56. 60.100 / 56. 60.100
  libavformat    56. 40.101 / 56. 40.101
  libavdevice    56.  4.100 / 56.  4.100
  libavfilter     5. 40.101 /  5. 40.101
  libavresample   2.  1.  0 /  2.  1.  0
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  2.101 /  1.  2.101
  libpostproc    53.  3.100 / 53.  3.100
    nan    :  0.000 fd=   0 aq=    0KB vq=    0KB sq=    0B f=0/0  

Ubuntu 14.04: (РАБОТАЕТ)

titus@titus-laptop:~$ 
titus@titus-laptop:~$ ffplay udp://127.0.0.1:1234
ffplay version 3.3.2 Copyright (c) 2003-2017 the FFmpeg developers
  built with gcc 4.8 (Ubuntu 4.8.4-2ubuntu1~14.04.3)
  configuration: --extra-libs=-ldl --prefix=/opt/ffmpeg --mandir=/usr/share/man --enable-avresample --disable-debug --enable-nonfree --enable-gpl --enable-version3 --enable-libopencore-amrnb --enable-libopencore-amrwb --disable-decoder=amrnb --disable-decoder=amrwb --enable-libpulse --enable-libfreetype --enable-gnutls --enable-libx264 --enable-libx265 --enable-libfdk-aac --enable-libvorbis --enable-libtheora --enable-libmp3lame --enable-libopus --enable-libvpx --enable-libspeex --enable-libass --enable-avisynth --enable-libsoxr --enable-libxvid --enable-libvidstab --enable-libwavpack --enable-nvenc
  libavutil      55. 58.100 / 55. 58.100
  libavcodec     57. 89.100 / 57. 89.100
  libavformat    57. 71.100 / 57. 71.100
  libavdevice    57.  6.100 / 57.  6.100
  libavfilter     6. 82.100 /  6. 82.100
  libavresample   3.  5.  0 /  3.  5.  0
  libswscale      4.  6.100 /  4.  6.100
  libswresample   2.  7.100 /  2.  7.100
  libpostproc    54.  5.100 / 54.  5.100
[h264 @ 0xb0621660] non-existing PPS 0 referenced sq=    0B f=0/0   
    Last message repeated 1 times
[h264 @ 0xb0621660] decode_slice_header error
[h264 @ 0xb0621660] non-existing PPS 0 referenced
[h264 @ 0xb0621660] decode_slice_header error
[h264 @ 0xb0621660] non-existing PPS 0 referenced
[h264 @ 0xb0621660] decode_slice_header error
[h264 @ 0xb0621660] non-existing PPS 0 referenced
[h264 @ 0xb0621660] decode_slice_header error
[h264 @ 0xb0621660] no frame!
[h264 @ 0xb0621660] non-existing PPS 0 referenced sq=    0B f=0/0   
1751.47 M-V: -0.021 fd=   0 aq=    0KB vq=   11KB sq=    0B f=0/0   
1751.63 M-V: -0.020 fd=   0 aq=    0KB vq=   11KB sq=    0B f=0/0   
1751.80 M-V: -0.020 fd=   0 aq=    0KB vq=   11KB sq=    0B f=0/0 

Наконец-то я хочу транслировать с разных плат ARM. Я также не могу собрать команду ffplay. Такая же проблема и с Raspberry Pi. Я что-то не так делаю или что-то не так понял?


person Titus    schedule 25.08.2017    source источник
comment
немного похоже на проблему с брандмауэром. возможно, добавление параметра ?broadcast=1 может смягчить документы здесь   -  person MrBar    schedule 26.08.2017
comment
Не работает. ffplay udp://192.168.0.105:1234?broadcast=1   -  person Titus    schedule 26.08.2017
comment
флаг должен быть добавлен, я имел в виду добавление его в команду ffmpeg   -  person MrBar    schedule 26.08.2017


Ответы (1)


Вы хотите транслировать прямую трансляцию с USB-камеры с iMX6 на ПК. Предполагая, что я правильно понял, запуск следующего конвейера на iMX6

gst-launch-1.0 imxv4l2src device=/dev/video3 ! videoconvert ! queue ! vpuenc_h264 ! rtph264pay ! udpsink host=10.18.0.125 port=5004

и запустив следующий конвейер на моем ПК

gst-launch-1.0 udpsrc port=5004 caps="application/x-rtp, media=(string)video, clock-rate=(int)90000, payload=(int)96, encoding-name=(string)H264" ! rtph264depay ! avdec_h264 ! xvimagesink

Я могу просматривать поток USB-камеры на ПК.

person Sanchayan Maity    schedule 05.09.2017