Hi,
I have a working pipeline on a Raspberry Pi that streams video from the camara using RTP over UDP:
raspivid -t 0 -w 640 -h 480 -fps 30 -b 2000000 -hf -vf -ex auto -awb auto -o - | \
gst-launch-1.0 -e -v fdsrc \
! video/x-h264,width=640,height=480,framerate=30/1,profile=baseline,stream-format=avc,alignment=au \
! queue \
! h264parse \
! rtph264pay \
config-interval=1 \
pt=96 \
! udpsink \
sync=false \
host=192.168.1.95 \
port=5004 \
bind-address=192.168.1.99 \
bind-port=5004
Now I try to play it on Android by modifying the pipeline in Tutorial 3. This is what I use:
udpsrc port=5004 caps=application/x-rtp,payload=96,clock-rate=90000,encoding-name=H264 \
! rtph264depay \
! video/x-h264,width=640,height=480,framerate=30/1,stream-format=avc,alignment=au \
! h264parse \
! autovideosink
But this throws the following error:
Error received from elements udpsrc0: Internal data stream error
I have also tried to
mpegtsmux
the parsed H264 video before linking it to
autovideosink
but I got the same error.
It is kinda weird because dumping video to a file does work:
udpsrc port=5004 caps=application/x-rtp,payload=96,clock-rate=90000,encoding-name=H264 \
! rtph264depay \
! video/x-h264,width=640,height=480,framerate=30/1,stream-format=avc,alignment=au \
! h264parse \
! mpegtsmux \
! filesink location=/sdcard/video.mpeg
Can anybody tell me what I am doing wrong?
Thank you very much in advance!