Ich habe die Lösung selbst gefunden.
Das Problem ist, dass der segment
Muxer einige Referenz-Frames betrachten muss, um das Audio richtig schneiden zu können, sodass das separate Mappen der Streams nicht funktioniert.
Was funktioniert, ist, ein "bulliges" .ts-Segment zu erzeugen, das alle Audio- und Videodateien enthält, und diese dann entsprechend zu schneiden. Ein einfaches und dennoch funktionierendes Beispiel:
ffmpeg-3.1.1 -i dual_short.mp4 -i audio_left_short.mp3 -i audio_right_short.mp3 \ -threads 0 -muxdelay 0 -y \ -map 0:v -map 1 -map 2 -pix_fmt yuv420p -movflags +faststart -r 29.97 -g 60 -refs 1 \ -vcodec libx264 -acodec aac -profile:v baseline -level 30 -ar 44100 -ab 64k -f mpegts out.ts # Perform 3 passes: # 1. Generate the video. ffmpeg-3.1.1 -i out.ts -threads 0 -muxdelay 0 -y -map 0:v -vcodec copy -f hls -hls_time 10 -hls_list_size 0 video/index.m3u8 # Generate Audio 1 ffmpeg-3.1.1 -i out.ts -threads 0 -muxdelay 0 -y -map 0:a:0 -codec copy -f segment -segment_time 10 -segment_list_size 0 -segment_list audio1/audio1.m3u8 -segment_format mpegts audio1/audio1_%d.aac # Generate Audio 1 ffmpeg-3.1.1 -i out.ts -threads 0 -muxdelay 0 -y -map 0:a:1 -codec copy -f segment -segment_time 10 -segment_list_size 0 -segment_list audio2/audio2.m3u8 -segment_format mpegts audio2/audio2_%d.aac