Multimedia 2.604 Themen, 14.707 Beiträge

ffmpeg position der Stream änderungen bestimmen?

robinx99 / 13 Antworten / Flachansicht Nickles

Hallo,

ich schneide hier ein Video (DVB Stream Channel 4 HD) und mir ist folgendes bei ffmpeg aufgefallen. Es gibt regelmäßig die Meldung:

Input stream #0:1 frame changed from rate:48000 fmt:fltp ch:6 chl:5.1(side) to rate:48000 fmt:fltp ch:2 chl:stereo

Also der Audio Stream hat sich von 5.1 auf Stereo verändert, natürlich gibt es auch die andere Meldung das der Audio Stream von Stereo wieder zu 5.1 wird. Dummerweise gibt es nirgendwo eine Positionsangabe. Da die Änderung des Streams genau bei der Werbung auftritt (Film 5.1, Werbung Stereo) frage ich mich ob man das nicht für ein Automatisches Schneiden nutzen könnte (mit einem kleinen Bash Script oder vielleicht ein bisschen Java) nur dafür bräuchte ich halt die Informationen wo genau der Audio Stream sich ändert, gibt es da eine Möglichkeit das man sich das Anzeigen lassen kann?

gruß

robinx99

bei Antwort benachrichtigen
robinx99 Solaris96 „hallo robinx99 falsch ausgedrückt von mir in deinem code, ...“
Optionen
in deinem code, dachte ich, ffprobe im loop benutzen. Ich war der Meinung die Parameter wären identisch /so/ Speicherlast mit ffprobe kleiner, was Ergebnisse reproduzierbarer machen könnte

soweit ich das sehe kennt ffprobe überhaupt keinen "-ss" (also seek start) Parameter und somit bekomme ich nur Infos vom Stream anfang.

ich frage mich auch, ob audioformatwechsel generell beim start v. Werbung und back immer vorhanden ist. Die vorhandenen proggis die Werbung killen sollen checken auf Szenenwechsel.

Gut Frage dürfte stark vom Sender abhängen und was sie ausstrahlen. Aber wenn sie AC3 5.1 Audio Spuren ausstrahlen, dann dürfte die chance hoch sein, dass sich diese Verändert, da viele Sender aber generell nur Stero Spuren haben dürfte es bei vielen Sendern nicht funktionieren. Wobei zumindest bei dem Comskip (was ja leider nicht mit h264 funktioniert) auch noch der Aspekt Ratio genannt wird, nur dass kann man halt nur Nutzen wenn man einen älteren Film / Serie aufnehmen will die im 4:3 Format ausgestrahlt wird während die Werbung im 16:9 Ausgestrahlt wird.

Aber gut irgendwann ist die Werbung auch 5.1 Audio und es geht nicht mehr so einfach.

kann es hier mit deinem string nicht nachvollziehen, falsche avcodec-52.dll. ich kann den javacode zwar "lesen", für Optimierung bin ich aber der Falsche.

Keine Ahnung wo die Meldung herkommt vielleicht auch unterschiedliche ffmpeg Versionen, aber im wesentlichen ist die ausgegebene Datei ja nur die Teile mittels ffmpeg zu kodieren, dann mit mkvmerge zusammen zufügen und nochmals ffmpeg drüber laufen zu lassen (um das audio umzuwandeln, ich hatte schon lustige Probleme wenn ich direkt nach AAC kodiere und dann zusammen füge deshalb halt erst Flac für die kleineren Teile).

gruß

robinx99

bei Antwort benachrichtigen