Es ist möglich dass ich es jetzt hin bekommen habe, muss aber noch weiter testen. Dachte schon paar mal es würde klappen :). Habe jetzt mal die Zeit hergenommen, die ich von ffprobe bei einem Key Frame angezeigt bekommen habe, habe ein Frame zurück gerechnet und mit diesem Wert in ffmpeg geschnitten. -ss habe ich dabei nach den Input gesetzt, da das wohl genauer sein soll. Das Anschließende concat gab nur Warnungen aus, dass die Trackanzahl unterschiedlich sein soll, liegt wohl daran dass in dem geschnittenen Clip keine hint Informationen mehr drin sind.
Mit dem Ganzen bezwecke ich eine Fallbacklösung für unseren Lifestream. Eigentlich wird der lokal auf einen Wowza Server im Internet gestream, allerdings brauchen wir eine Ausfalllösung und diese möchten ich auf einen VServerm packen.
Die Warnungen die entstehen führen dazu, dass der Stream nicht mehr in Echtzeit läuft, trotz -re, daher brauch ich eine Lösung welche keine fortlaufenden Warnungen in ffmpeg produziert.
Hier sind mal zwei Clips zum testen:
ADtv.Gesundheit.2012 (V01).mp4.zip
ADtv.Prophetie.Zeitgeschehen.2012 (V01).mp4.zip
Der Inhalt für die Playlist.txt würde in etwa so ausschauen:
file 'ADtv.Gesundheit.2012 (V01)_cutTmp.mp4'file 'ADtv.Prophetie.Zeitgeschehen.2012 (V01).mp4'
Der ffmpeg concat Befehl schaut so aus:
ffmpeg -f concat -re -i "$newPList" -c copy -flags global_header -bsf:a aac_adtstoasc -f flv -threads 1 rtmp://streaming/address
Zum testen geht auch, statt Adresse, -f sdl "test"
Falls es interessiert, mit ffprobe bekomme ich die Keyframes und die dazugehören Zeiten so raus:
ffprobe -i input -show_frames -select_streams v -show_entries frame=key_frame -show_entries frame=pkt_dts_time -v quiet -of csv="p=0"