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:
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?