#!/bin/sh # example pipeline to download HSL streams from raiplay.it set -e { [ "x$1" = "x" ] || [ "x$2" = x ]; } && { echo "usage: $(basename "$0") " 1>&2; exit 1; } SOURCE_URL="$1" OUTPUT_FILE="$2" # use a high value for connection-speed to download the best quality video gst-launch-1.0 \ \ mp4mux name=mp4 fragment-duration=10 ! \ filesink location="$OUTPUT_FILE" \ \ "$SOURCE_URL" ! \ hlsdemux connection-speed=4294967 ! \ tsdemux name=ts \ \ ts.video_0_0100 ! h264parse ! queue ! \ mp4.video_00 \ \ ts.audio_0_0101 ! decodebin ! audioconvert ! lamemp3enc ! queue ! \ mp4.audio_00 # NOTE: the audio re-encoding is necessary because aacparse lacks some # functionality, see: # https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/106