1

I have this public HLS stream from apple:

http://qthttp.apple.com.edgesuite.net/1010qwoeiuryfg/sl.m3u8

It has the following content:

curl http://qthttp.apple.com.edgesuite.net/1010qwoeiuryfg/sl.m3u8
#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=688301
http://qthttp.apple.com.edgesuite.net/1010qwoeiuryfg/0640_vod.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=165135
http://qthttp.apple.com.edgesuite.net/1010qwoeiuryfg/0150_vod.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=262346
http://qthttp.apple.com.edgesuite.net/1010qwoeiuryfg/0240_vod.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=481677
http://qthttp.apple.com.edgesuite.net/1010qwoeiuryfg/0440_vod.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=1308077
http://qthttp.apple.com.edgesuite.net/1010qwoeiuryfg/1240_vod.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=1927853
http://qthttp.apple.com.edgesuite.net/1010qwoeiuryfg/1840_vod.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=2650941
http://qthttp.apple.com.edgesuite.net/1010qwoeiuryfg/2540_vod.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=3477293
http://qthttp.apple.com.edgesuite.net/1010qwoeiuryfg/3340_vod.m3u8

Now I want to create a Kinesis Video Stream producer. I start by creating a new AWS Linux 2 EC2 Instance. I am bootstrapping this instances with the following script:

https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp/blob/master/kinesis-video-native-build/install-script-ami

I didn't have any luck with the ./install-script -a -d -j $MAX_NUM_PARALLEL command specified in the install-script-ami file. Removing the -a as follows did it for me: ./install-script -d -j $MAX_NUM_PARALLEL. When I ran this, it churned for 10 minutes and then failed. The repair here was to install c++ with:

yum install gcc-c++

So I re-ran the install-script and it continued on where it left off. After another 20 minutes or so, the installation completes and I get this prompt:

[100%] Built target kvs_producer_plugin_rtsp_demo
**********************************************************
Success in building the Kinesis Video Streams Producer SDK !!!
**********************************************************
Now you can set the environment variables before running the sample applications
by running source set_kvs_sdk_env.sh
Also, you may want to add to the following environment variables to set it permanently
in /root/.bashrc or /root/.bash_profile or /root/.zshrc

Lastly, I sourced the envars:

source set_kvs_sdk_env.sh

Now I am finally going to try read the HLS Stream with...

gst-launch-1.0 http://qthttp.apple.com.edgesuite.net/1010qwoeiuryfg/sl.m3u8 ! hlsdemux ! tsdemux ! queue ! video/x-h264 ! h264parse ! qtmux ! filesink
WARNING: erroneous pipeline: no source element for URI "http://qthttp.apple.com.edgesuite.net/1010qwoeiuryfg/sl.m3u8"

This is when I get the WARNING. At this point, I am really close, but stuck. Ultimately I want to run this command:

gst-launch-1.0 $STREAM_URL ! hlsdemux ! tsdemux ! queue ! video/x-h264 ! kvssink stream-name=$STREAM_NAME storage-size=512 access-key=$AWS_ACCESS_KEY_ID secret-key=$AWS_SECRET_ACCESS_KEY aws-region="us-east-1"

What am I doing wrong here? Why am I getting WARNING: erroneous pipeline: no source element for URI warnings for every HLS URL I use?

Gnietschow
  • 3,070
  • 1
  • 18
  • 28
aidanmelen
  • 6,194
  • 1
  • 23
  • 24
  • I am looking more closely at the output from the install-script. It specifically built `Built target kvs_producer_plugin_rtsp_demo`. I am think that I need to built a `kvs_producer_plugin_hls`. I am reading [here](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_reader_GetHLSStreamingSessionURL.html#API_reader_GetHLSStreamingSessionURL_SeeAlso) and it is definitely support – aidanmelen Jul 21 '19 at 14:47

0 Answers0