I’m trying to convert a set of mp3s that represent chapters of an audiobook into HLS as part of a real-time streaming solution. While I have the code working, the main issue is that the conversion only creates one large segment per input file even if I specify 10 second segments in hlssink. Perhaps, I have to use another element such as splitmuxsink to manually split the files? I don’t have this problem with video. Here is the Python code fragment of my pipeline:
# Create the source element
src = Gst.ElementFactory.make('appsrc', 'source')
# Create the rest of the audio pipeline
decodebin = Gst.ElementFactory.make('decodebin')
audioconvert = Gst.ElementFactory.make('audioconvert')
avenc_aac = Gst.ElementFactory.make('avenc_aac')
mpegtsmux = Gst.ElementFactory.make('mpegtsmux')
hlssink = Gst.ElementFactory.make('hlssink')
# Create the queue element
queue = Gst.ElementFactory.make('queue')
# Set the target-duration property of hlssink
hlssink.set_property('target-duration', 20) # Set target duration to 20 seconds
# Set the location and playlist-location properties of hlssink
hlssink.set_property('location', f'segment{i:05d}.ts')
hlssink.set_property('playlist-location', f'playlist{i}.m3u8')