Error in video streaming

while applying exactly what is written in the documents concerning video streaming we are getting this error :

ERROR: from element /GstPipeline:pipeline0/GstH264Parse:h264parse0: No valid frames found before end of stream

any ideas??

A fast reply and solution would be highly appreciated !


pi@navio:~ $ raspivid -n -w 1280 -h 720 -b 1000000 -fps 15 -t 0 -o - | gst-launch-1.0 -v fdsrc ! h264parse ! rtph264pay config-interval=10 pt=96 ! udpsink host=192.168.137.1 port=9000
Setting pipeline to PAUSED …
Pipeline is PREROLLING …
ERROR: from element /GstPipeline:pipeline0/GstH264Parse:h264parse0: No valid frames found before end of stream
Additional debug info:
gstbaseparse.c(1155): gst_base_parse_sink_event_default (): /GstPipeline:pipeline0/GstH264Parse:h264parse0
ERROR: pipeline doesn’t want to preroll.
Setting pipeline to NULL …
Freeing pipeline …
pi@navio:~ $

@71430835

Hello! Could you please tell us what camera you’ve been trying to use?

Iam using raspberry pi camera

What version exactly? v1.x or v2.1?

We are using a raspberry pi 3 with Raspberry pi camera rev 1.3 connected to it …

Is there a chance it’s connected wrong? I’ve seen this error before after I hadn’t properly connected the camera. Just for the testing’s sake I took my camera (v1.3) and tested it today. Everything was fine! But as soon as I somehow made the connection unsteady, the error popped up.

iam positively sure everything is connected properly , i installed the original raspbian image to test the cam and i added the code through python and camera worked properly , then i switched to the other sd card with emlid raspbian and i tried the pipe line i got this error …

which image are you using ? and which raspberry pi ? connection used ? ethernet or wifi for testing ?

i have both raspberry pi 2 and 3 i can switch between them if this is a problem

is it possibly a problem in the image installed or the gstreamer ? i noticed something in the original raspbian image when you turn on the camera you see that the camera is turned on but in the emlid image it does not show but you can notice it from pipe line when camera is turned off it says check camera if turned on … is it possible something wrong in the image ?

Currently having the same problem. Pi 3, Navio +. Wireless connection

Guys, what if you prepend the command with sudo? I don’t want to be that guy that says “it works on my machine”, but it works for sure :cold_sweat:

You can add a new rule for udev in /etc/udev/rules.d/vchiq-permissions.rules like this one:

SUBSYSTEM=="vchiq",GROUP="video",MODE="0660"

It’ll save you the trouble of typing “sudo”. We’ll add this rule in the next image release.

so you think this will solve the problem ? ill give it a try in 15 minutes

ok i think my problem is resolved … the pipeline on the raspberry is working and on the pc is working … how the video will be shown ? only through mission planner / apm planner or the android app ???

pi@navio:~ $ raspivid -n -w 1280 -h 720 -b 1000000 -fps 15 -t 0 -o - | gst- launch-1.0 -v fdsrc ! h264parse ! rtph264pay config-interval=10 pt=96 ! udpsink host=192.168.137.1 port=9000
Setting pipeline to PAUSED …
Pipeline is PREROLLING …
/GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:src: caps = “video/x-h264\ ,\ width=(int)1280,\ height=(int)720,\ framerate=(fraction)0/1,\ par sed=(boolean)true,\ stream-format=(string)avc,\ alignment=(string)au\ ,\ level=(string)4,\ profile=(string)high,\ codec_data=(buffer)016400 28ffe1000e27640028ac2b402802dd00f1226a01000528ee025cb0”
/GstPipeline:pipeline0/GstRtpH264Pay:rtph264pay0.GstPad:src: caps = “application /x-rtp,\ media=(string)video,\ clock-rate=(int)90000,\ encoding-name=\ (string)H264,\ sprop-parameter-sets=(string)“J2QAKKwrQCgC3QDxImo\=\,KO 4CXLA\=”,\ payload=(int)96,\ ssrc=(uint)3776496651,\ timestamp-offse t=(uint)326314790,\ seqnum-offset=(uint)12106”
/GstPipeline:pipeline0/GstUDPSink:udpsink0.GstPad:sink: caps = “application/x-rt p,\ media=(string)video,\ clock-rate=(int)90000,\ encoding-name=(stri ng)H264,\ sprop-parameter-sets=(string)“J2QAKKwrQCgC3QDxImo\=\,KO4CXLA \=”,\ payload=(int)96,\ ssrc=(uint)3776496651,\ timestamp-offset=( uint)326314790,\ seqnum-offset=(uint)12106”
/GstPipeline:pipeline0/GstRtpH264Pay:rtph264pay0.GstPad:sink: caps = “video/x-h2 64,\ width=(int)1280,\ height=(int)720,\ framerate=(fraction)0/1,\ parsed=(boolean)true,\ stream-format=(string)avc,\ alignment=(string) au,\ level=(string)4,\ profile=(string)high,\ codec_data=(buffer)016 40028ffe1000e27640028ac2b402802dd00f1226a01000528ee025cb0”
/GstPipeline:pipeline0/GstRtpH264Pay:rtph264pay0: timestamp = 326314790
/GstPipeline:pipeline0/GstRtpH264Pay:rtph264pay0: seqnum = 12106
Pipeline is PREROLLED …
Setting pipeline to PLAYING …
New clock: GstSystemClock


C:\gstreamer\1.0\x86_64\bin>gst-launch-1.0 -v udpsrc port=9000 caps=“application
/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264”
! rtph264depay ! avdec_h264 ! videoconvert ! autovideosink sync=f
Setting pipeline to PAUSED …
Pipeline is live and does not need PREROLL …
Setting pipeline to PLAYING …
New clock: GstSystemClock
/GstPipeline:pipeline0/GstUDPSrc:udpsrc0.GstPad:src: caps = application/x-rtp, m
edia=(string)video, clock-rate=(int)90000, encoding-name=(string)H264
/GstPipeline:pipeline0/GstRtpH264Depay:rtph264depay0.GstPad:sink: caps = applica
tion/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H2
64

I’m glad it’s resolved :slight_smile: Refer to our docs for further vide configuration.

thank you my dear , my question is now that when running the pipe on the pc you should have the video streams infront of you right ?

Yes, but I guess I can’t quite infer from your last message the meaning of “pipe” that you’re implying in this context :frowning:
Do you mean the “pipe” as in the Unix pipeline ("|")?

heheheh i mean the command / line whatever you wish to call it :smile: … i have everything working as i showed you above but no window showing the video stream … what do you think the problem would be ?

Is there a chance the IP of your Windows PC has already changed and is not longer 192.168.137.1?

its a static ip on my pc , the changing ip is the pi’s IP , iam connected right now to the pi through ethernet .

Hello!
I am having exactly the same issue as described above, but I cannot implement your solution as I don’t find any file /etc/udev/rules.d/vchiq-permissions.rules
When I try sudo nano /etc/udev/rules.d/vchiq-permissions.rules I just get an empty screen…
Instead in the folder I have a file called 99-com.rules

Should I modify this one?
thanks!