Я передаю видеопоток с камеры PSEye с Jetson Nano, используя этот конвейер:
gst-launch-1.0 -e v4l2src device=/dev/video0 ! "video/x-raw, width=640, height=480, framerate=30/1" ! nvvidconv ! "video/x-raw(memory:NVMM)" ! nvv4l2vp8enc bitrate=1000000 ! queue ! rtpvp8pay ! udpsink host=10.50.26.5 port=5801
В настоящее время я получаю видеофайл на другом компьютере (Windows 10) по сети, используя этот конвейер:
gst-launch-1.0 udpsrc port=5801 ! "application/x-rtp, clock-rate=(int)90000, media=(string)video, encoding-name=VP8" ! rtpvp8depay ! decodebin ! autovideosink
Я успешно записал видео в mp4 вместо того, чтобы отображать его с этим конвейером:
gst-launch-1.0 -e udpsrc port=5801 ! "application/x-rtp, clock-rate=(int)90000, media=(string)video, encoding-name=VP8" ! rtpvp8depay ! decodebin ! x264enc bitrate=1024 ! mp4mux ! filesink location=test.mp4
Однако, когда я добавляю тройник, который также отображает видео, когда я нажимаю Ctrl +C в командной строке, чтобы остановить конвейер, отображается следующее сообщение и будет зависать до тех пор, пока я снова не нажму Ctrl + C:
Interrupt: Stopping pipeline ...
EOS on shutdown enabled -- Forcing EOS on the pipeline
Если после I Ctrl + C файл MP4 не получит последний кадри становится испорченным.Я использую этот конвейер для отображения видео во время записи MP4, который всегда искажается:
gst-launch-1.0 udpsrc port=5801 ! "application/x-rtp, clock-rate=(int)90000, media=(string)video, encoding-name=VP8" ! rtpvp8depay ! decodebin ! tee name = t ! queue ! x264enc bitrate=1024 ! mp4mux ! filesink location=test.mp4 t. ! queue ! autovideosink -e
Я также попытался выполнить переход по файлообменнику после autovideosink, перемещая ключ -e сразу после gst-launch-1.0, а также многие другие перестановки указанного выше конвейера.У меня все еще есть проблемы с корректным завершением работы MP4, чтобы не повредить файл, но я успешно показал видео.
Заранее спасибо за ответы.