Dateiname zitiert in ffmpeg concat

12

Ich möchte Dateien mit ffmpeg mit Concat Demuxer verketten, wie in diesem Artikel beschrieben. So verketten (verbinden, zusammenführen) Mediendateien . Meine Dateien enthalten jedoch einfache Anführungszeichen (Apostrophe). Meine concat.list sieht also so aus:

file 'artist's song.mp3'
file 'artist's song 2 .mp3'

Wie Sie sehen können, widerspricht der Apostroph in der Mitte des Dateinamens dem Format der Concat-Datei. Das Setzen von Backslash hilft nicht, da ffmpeg den Dateinamen literarisch liest und sich beschwert, dass die Datei nicht existiert. Als zusätzliches Detail verwende ich ffmpeg mit cygwin unter Windows 7.

Tihomir Mitkov
quelle

Antworten:

13

Sie müssen alles in einfache Anführungszeichen setzen und jedes einzelne Anführungszeichen mit umgehen

'\''

Damit,

foo'bar test.mp4

würde angegeben werden als:

file 'foo'\''bar test.mp4'

Sie können sich vorstellen, dass die Zeichenfolge dort geteilt wird, wo das erste Paar einfacher Anführungszeichen endet und später fortgesetzt wird:

'foo'   \'   'bar test.mp4'

Dies wird auch in der Dokumentation erklärt :

Das Anführungszeichen selbst kann nicht in Anführungszeichen gesetzt werden. Daher müssen Sie möglicherweise das Anführungszeichen schließen und es maskieren.

und dieser Fehlerbericht .

slhck
quelle