Я пытаюсь транслировать видео с веб-камеры с одного компьютера на другой с низкой или нулевой задержкой. Я использовал следующую команду.
Отправитель:
gst-launch-1.0 v4l2src ! video/x-raw,width=640,height=480 ! x264enc ! h264parse ! rtph264pay ! udpsink host=127.0.0.1 port=5000
Но я получаю следующую ошибку:
Setting pipeline to PAUSED ...
ERROR: Pipeline doesn't want to pause.
ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: This isn't a device '/dev/video0'.
Additional debug info:
v4l2_calls.c(575): gst_v4l2_open (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
system error: Success
Setting pipeline to NULL ...
Freeing pipeline ...
Кто-нибудь знает, как я могу устранить эту ошибку?
Ошибка означает, что/dev/video0 не является устройством видеосъемки. Возможно, необходимо установить другое использование устройства:
gst-launch-1.0 v4l2src device="/dev/videoX" ! video/x-raw,width=640,height=480 ! x264enc ! h264parse ! rtph264pay ! udpsink host=127.0.0.1 port=5000
, Где 'X' количество Вашего устройства видеосъемки. Это могло бы также произойти, который Ваше устройство не может получить в 640x480, таким образом, Вы могли бы хотеть добавить videoscale перед ограничениями, и также безопасно иметь videoconvert перед кодером в случае, если вход находится в формате, который не может обработать кодер.
Так что-то как:
gst-launch-1.0 v4l2src device=<device> ! videoscale ! video/x-raw,width=640,height=480 ! videoconvert ! x264enc ! h264parse ! rtph264pay ! udpsink host=127.0.0.1 port=5000