I am having issues streaming video with Kinesis video streams producer sdk c++ from raspberry pi 4. I followed AWS Official Tutorial and Github Repo instructions but to no avail. Below are is my raspberry pi 4 info and the commands I ran after compiling the Kinesis Video Streams Producer SDK CPP with respect errors. I would appreciate your help.
Device: Raspberry Pi 4
OS: Raspbian GNU/Linux 11 (bullseye)
Architecture: arm64
SDK: Amazon Kinesis Video Streams Producer SDK CPP
Camera: Logi Tech
Streaming from Video Source
Command:
GST_DEBUG=*:2 gst-launch-1.0 v4l2src do-timestamp=TRUE device=/dev/video0 ! videoconvert ! video/x-raw,format=I420,width=640,height=480,framerate=30/1 ! x264enc bframes=0 key-int-max=45 bitrate=500 ! video/x-h264,stream-format=avc,alignment=au,profile=baseline ! kvssink stream-name="Stream-Name" access-key=$AWS_ACCESS_KEY_ID secret-key=$AWS_SECRET_ACCESS_KEY aws-region=$AWS_DEFAULT_REGION
Error:
0:00:00.955461613 17274 0x6bb680 WARN v4l2src gstv4l2src.c:694:gst_v4l2src_query:<v4l2src0> Can't give latency since framerate isn't fixated !
0:00:00.955543445 17274 0x6bb680 WARN bin gstbin.c:2811:gst_bin_do_latency_func:<pipeline0> did not really configure latency of 0:00:00.000000000
INFO - kinesisVideoStreamFormatChanged(): Stream format changed.
2023-12-04 12:43:21 [3926914112] INFO - putStreamResultEvent(): Put stream result event. New upload handle 0
2023-12-04 12:43:21 [3926914112] WARN - notifyDataAvailable(): [Stream-Name] Failed to un-pause curl with error: 43. Curl object 0xe256b930
Bus error
Streaming with RTSP
Command:
gst-launch-1.0 -v rtspsrc location="rtsp://IP:8554" short-header=TRUE ! rtph264depay ! h264parse ! kvssink stream-name="Stream-Name" storage-size=128
Error:
ERROR: from element /GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0: Could not read from resource.
Additional debug info:
../gst/rtsp/gstrtspsrc.c(6532): gst_rtspsrc_try_send (): /GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0:
Could not receive message. (Parse error)
ERROR: pipeline doesn't want to preroll.
The official tutorial you've linked to contains a recommended step to stream video from your camera to the cloud using a sample application, so it doesn't appear that you are following these instructions specifically. It also appears that you are attempting to stream from your Raspberry Pi with an RTSP stream instead of using a Pi Cam. The tutorial you are following is meant to be used with a Pi Camera attached via a ribbon cable.
Thank you for your response. Isn't there an official documentation for using a USB Camera?
I would consider it an atypical configuration to use a Raspberry Pi with a USB camera instead of directly connecting a Pi Camera. The official guide was written with the typical setup in mind. Since you are using gstreamer in your setup, you might use the following Workshop instructions to troubleshoot your gstreamer pipeline and ensure it is working. https://catalog.us-east-1.prod.workshops.aws/workshops/b95b9381-baf0-4bef-ba31-63817d54c2a6/en-US/2-setup/5-gstreamer-intro. The error you have provided above indicates that gstreamer can't connect to your camera.
We are getting the same BUS error when also connecting with picamera and following through the tutorial
Do you encounter any errors attempting to stream using the binaries supplied in the directory where kvs_gstreamer_example binary is? https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/producersdk-cpp-rpi-run.html