Issue Streaming Video to Kinesis Video Streams on Raspberry PI 4

0

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

Sillah
asked 10 months ago3627 views
1 Answer
0

Using the C++ Producer for Kinesis, with this command here you could test camera, integration and RTSP all at once. Let me know if it works.

export STREAM_NAME=your_stream_name
export AWS_ACCESS_KEY_ID=your_access_key_id
export AWS_SECRET_ACCESS_KEY=your_secret_access_key
export AWS_DEFAULT_REGION=your_region

GST_DEBUG=*:2 gst-launch-1.0 v4l2src 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
profile picture
EXPERT
answered 3 months ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions