Kombinieren Sie Video- und Audio-TS-Segmente aus dem HLS-Stream

7

Apple HLS überträgt MPEG-2 TS-Dateien mit Video- und Audiodaten im paketierten Elementar-Stream-Format. Diese Segmente ( .tsDateien) können zusammengefügt werden, um das endgültige Video zu erstellen.

Die neueste Version von HLS kann jetzt Segmente mit Videodaten nur in TS-Dateien und Audiodaten nur in anderen TS-Dateien erzeugen. Dies wird verwendet, um mehrsprachiges Video bereitzustellen.

Wie kann ich unabhängig von HLS selbst TS-Dateien mit Videodaten und Audiodaten in einer TS-Datei entfernen? Das Zusammenfügen von TS-Dateien funktioniert nicht. Ich erhalte Daten aus der ersten TS-Datei kombiniert mit dem gleichen Datentyp aus den nächsten TS-Dateien (nur Video oder Audio).

Klettverschluss
quelle
Ich weiß nicht genug, um eine tatsächliche Lösung zu finden, aber einige Lektüre scheint darauf hinzudeuten, dass FFMPEG möglicherweise in der Lage ist, damit umzugehen.
AJ Henderson
Ich habe gerade nachgesehen und ja, du hast recht. FFmpeg verarbeitet HLS mit mehreren Audiospuren. Ich werde jetzt einen Blick auf die Quelle werfen.
Klettverschluss

Antworten:

3

Mit tsMuxer können Sie den Audiostream aus einer .ts-Datei in die .ts-Datei mit dem Video einfügen oder umgekehrt. Dies wird als Muxing bezeichnet und hat keinerlei Einfluss auf die Audio- oder Videoqualität.

PTS
quelle
1

Hast du eine m3u8datei Wenn ja, können Sie das einfach tun

ffmpeg -i indexfile.m3u8 -acodec copy -vcodec copy output.ts

Sie können es auch direkt in den mp4-Container konvertieren:

ffmpeg -i indexfile.m3u8 -acodec copy -vcodec copy output.mp4
erik
quelle
Dies funktioniert nicht, wenn die indexfile.m3u8 eine separate URL für Audio und eine separate URL für video_01.m3u8 hat
chovy
@chovy: Kannst du mir diese Datei zeigen? Ich denke, es sollte möglicherweise mit Option -mapund möglicherweise einer zweiten Option -ifunktionieren, die dieselbe Eingabedatei verwendet (in Ihrem Fall video_01.m3u8).
Erik
es funktioniert, wenn ich es tueffmpeg -i <audio-stream> -i <video-stream> -async 1 -c copy test.m3u8
chovy