Как передавать видео h264 с веб-камеры в сеть?

У меня есть веб-камера, которую я хочу использовать для потокового видео h264. Теперь я транслирую mjpg видео с mjpg-стример. И теперь я хотел бы передать h264. Я обнаружил, что это можно сделать с помощью gstreamer, но я совершенно новичок в этом. Также после чтения некоторых блогов / статей / и т. Д. Мне кажется, что были проблемы с h264 и gstreamer. Это правда?

Может быть, есть другие способы сделать это, кроме gstreamer?

  • Xlib: Протокол не указан
  • Отключите Энергоэффективный Ethernet (eee) aka Green Ethernet
  • Как узнать, является ли диск SSD или HDD
  • Как пересылать трафик между пространствами имен в Linux?
  • Храните живой клон машины в другой
  • Linux Mint: изменение карты дисков при перезагрузке приводит к ошибке fstab
  • Любая информация будет полезна. Заранее спасибо.

  • Зачем нужна временная система для создания Linux из Scratch?
  • udev управляет официальными документами
  • Корреляция / var / log / * timestamps
  • Как отправить / загрузить файл с ОС хоста в гостевую ОС в KVM? (Не для совместного использования папки)
  • Где искать дополнительную информацию, если у меня нет Интернета?
  • Как отключить режим отладки на сервере Jboss на Linux-машине?
  • One Solution collect form web for “Как передавать видео h264 с веб-камеры в сеть?”

    Я объясню, как передать h264 с помощью gstreamer.

    Во-первых, вам нужно, чтобы ядро ​​Linux 3.2 или новее поддерживало «H264 пиксельный формат» в драйверах v4l2.

    Используйте v4l2-ctl для проверки правильности поддержки H.264 для камеры:

     # v4l2-ctl --list-formats
     # v4l2-ctl --list-formats-ext
    

    Затем вам понадобятся библиотеки и утилиты video4linux. К ним относятся:

     libv4l и libv4l-dev
     v4l-Utils
     qv4l2 (может быть частью v4l-utils)
     v4l2ucp
    

    Настройка частоты кадров:

     # v4l2-ctl --set-fmt-video = width = 800, height = 448, pixelformat = 1
     # v4l2-ctl --set-parm = 30
    

    Gstreamer имеет входной элемент v4l2src, он еще не поддерживает формат видео / x-264.

    Но мы можем захватить поток H.264 и отправить в файл или даже стандартную версию, просто связав его с стандартным вводом конвейера gstreamer с использованием источника файла:

     # ./capture -c 100000 -o |  gst-launch -v -e filesrc location = / dev / fd / 0!  h264parse!  decodebin2!  xvimagesink sync = false
    

    Кодированный видеопоток может быть отправлен по сети с использованием Gstreamer:

     # gst-launch -v udpsrc port = 4000 caps = 'application / x-rtp, media = (string) video, clock-rate = (int) 90000, encoding-name = (string) H264'!  \
               rtph264depay!  ffdec_h264!  xvimagesink sync = false
    
      # ./capture -c 10000 -o |  gst-launch -v -e filesrc location = / dev / fd / 0!  h264parse!  rtph264pay!  udpsink host = host_IP port = 4000
    

    Надеюсь, вы найдете это полезным.

    Linux и Unix - лучшая ОС в мире.