Я давно застрял в чем-то, и мне было любопытно, есть ли у вас какие-либо идеи. Это мой первый раз, когда я использую плату или gstreamer или Linux вообще и впервые публикую здесь, так голый со мной.Gstreamer через UDP между двумя платами RIoT с CAM8200-U
То, что я пытаюсь выполнить, заключается в использовании gst-launch
для захвата видео, его передачи и сохранения на второй плате. Затем я хочу проверить, что поток хорош, играя видеофайл на ПК.
CAM8200-U -> RIoT_1------Stream_Ethernet-----RIoT_2 - Save file on RIoT_2.
Обе платы работают Linux Yocto v3.10.17
Во-первых, я последовал за этот учебник (я использую gst-launch-0.10
не 1.0
, потому что это версия на досках): http://www.z25.org/static/rd/videostreaming_intro_plab/
Отправитель:
gst-launch-0.10 videotestsrc ! jpegenc ! rtpjpegpay ! udpsink host=127.0.0.1 port=5200
Приемник:
gst-launch-0.10 udpsrc port=5200 ! application/x-rtp, encoding-name=JPEG,payload=26 ! rtpjpegdepay ! jpegdec ! autovideosink
Этот пример работает отлично на досках! На самом деле не используется камера, но все же хорошая отправная точка. Однако, если я изменю autovideosink
с filesink location=xxx.format (.mp4 .mkv .avi)
, файл не воспроизводится.
Вопрос 1: Вы знаете, как сохранить этот поток в файле, который можно воспроизвести позже?
После поиска немного, я был в состоянии потока и сохранить videotestsrc
с этими линиями:
Отправитель:
gst-launch-0.10 videotestsrc ! ffmpegcolorspace ! jpegenc ! udpsink host=192.168.1.103 port=5200
Приемник:
gst-launch-0.10 udpsrc port=5200 ! jpegdec ! ffmpegcolorspace ! avimux ! filesink location=/home/root/movie.avi
Однако изменение videotestsrc
с v4l2src device=/dev/video0
дает мне пустой файл.
Вопрос 2. У вас есть идеи, почему он работает с videotestsrc
, а не с камерой?
Затем я нашел этот пример, данный элементом14 на YouTube: https://www.youtube.com/watch?v=mRbckLppmKs, с помощью которого я могу получить видео с камеры и сохранить его. Это линия:
gst-launch-0.10 v4l2src device=/dev/video0 num-buffers=-1 ! 'video/x-raw-yuv,width=1024,height=768' ! queue ! ffmpegcolorspace ! vpuenc codec=0 ! matroskamux ! filesink location=output.mkv sync=false
Я попробовал несколько способов разработки этой линии на поток и сохранить его на другом конце, но все они оказались безуспешными.
Вопрос 3: Вы знаете, как правильно я могу передавать и сохранять видео с этой камеры?
Заранее благодарен!
Дополнительная информация: Для воспроизведения H.264 с короткой задержкой (~ 200 мс) Sender :::: 'GST-ответно-0,10 v4l2src устройства =/Dev/video0! 'video/x-raw-yuv, width = 640, height = 480'! ffmpegcolorspace! vpuenc codec = 6! rtph264pay! udpsink хост = порт 192.168.1.103 = 5200 --gst-отлаживать = 2' \t \t \t Приемник :::: 'GST-ответно-0,10 udpsrc порт = 5200! application/x-rtp, media = video, payload = 96, encoding-name = H264! rtph264depay! vpudec low-latency = true! autovideosink --gst-debug = 2' – Bozhidar