Tôi là người mới chơi với gstreamer và tôi đang cố gắng sử dụng nó. Mục tiêu đầu tiên của tôi là tạo luồng rtp đơn giản của video h264 giữa hai thiết bị. Tôi đang sử dụng hai đường ống này:Phát video H.264 qua rtp bằng gstreamer
Tên người gửi: gst-launch-1.0 -v filesrc location=c:\\tmp\\sample_h264.mov ! x264enc ! rtph264pay ! udpsink host=127.0.0.1 port=5000
Receiver: gst-launch-1.0 -v udpsrc port=5000 ! rtpmp2tdepay ! decodebin ! autovideosink
Nhưng với cái đầu tiên (người gửi) Tôi đã nhận được lỗi sau:
Setting pipeline to PAUSED ...
Pipeline is PE*R*O L(LgIsNtG- l.a.u.n
h-1.0:5788): CRITICAL **: gst_adapter_map: assertion `size > 0' failed
ERROR: from element /GstPipeline:pipeline0/GstFileSrc:filesrc0: Internal data flow error.
Additional debug info:
gstbasesrc.c(2812): gst_base_src_loop(): /GstPipeline:pipeline0/GstFileSrc:filesrc0:
streaming task paused, reason not-negotiated (-4)
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...
tôi đã cố gắng nhiều cấu hình khác nhưng tôi không thể tìm được đường dẫn đúng.
Một số thông tin khác: phiên bản GStreamer: 1.0.7 Hệ điều hành: Windows 7
Bất cứ ý tưởng/đề nghị? Thx,
Cảm ơn bạn cho dữ liệu gợi ý thô/video nhưng tôi nghĩ rằng điều này giải quyết chỉ một mệnh đề của vấn đề. Tôi đã thử các đường ống cổ điển với videotestsrc nhưng không có gì là đi sang phía bên kia. Ngay cả với các đường ống sau tôi không thể nhận được bất cứ điều gì ở phía bên kia: 'gst-launch-1.0 -v videotestsrc! udpsink host = 192.128.52.128 port = 9001' Tôi có cảm giác rằng udpsink không gửi bất cứ thứ gì! PS: không phải là vấn đề của tường lửa, tôi tắt tất cả chúng – abir
Đang thử với: 'ffmpeg -i C: \ tmp \ sample_h264.mov -f mpegts udp: //192.168.52.128: 9001' ... và luồng được nhận ở phía bên kia. Nhưng tôi muốn làm điều đó với gstreamer – abir
'videotestsrc! udpsink' là * không * luồng RTP. bạn phải thêm bộ tải trọng –