Ich versuche, Videos für das MPEG-Dash-Streaming zu kodieren. Ich habe den folgenden Befehl verwendet (ich habe ihn aus diesem Artikel übernommen: http://blog.streamroot.io/encode-multi-bitrate-videos-mpeg-dash-mse-based -Medienspieler / ):
cd c:\ffmpeg\bin
set inputFile="C:\park.mp4"
set outputFile="C:\content\park"
ffmpeg -y -i %inputFile% -c:a libfdk_aac -ac 2 -ab 128k -c:v libx264 -r 24 – g 24 -b:v 1500k -maxrate 1500k -bufsize 1000k -vf "scale=-1:720" %outputFile%_720.mp4
Nach dem Ausführen des Befehls wird das folgende Problem angezeigt:
[NULL @ 0000000002f43dc0] Unable to find a suitable output format for 'ΓÇô' ΓÇô: Invalid argument
Ich habe andere Videos ausprobiert, aber der Fehler ist der gleiche.
Wie löse ich das?
Antworten:
Das Problem ist, dass Sie einen "speziellen" Bindestrich gefolgt von einem Leerzeichen vor dem "g" in der Mitte Ihrer Befehlszeile haben, der als " en dash " bezeichnet wird und Ihren Parser verwirrt.
Zu vergleichen:
Dein Skript sollte (nach bestem Wissen) sein:
Ich gehe davon aus, dass der Artikel, aus dem Sie das Skript kopiert haben, mit einem Textverarbeitungsprogramm erstellt wurde, das den Bindestrich automatisch ersetzte, nachdem versehentlich ein Leerzeichen vor dem "g" eingegeben und von dort kopiert und in den Rest des eingefügt wurde Artikel.
Ein Hinweis auf diese SO-Frage
quelle
Das Erste, was ich sehe: Sie haben ein Leerzeichen zwischen dem Bindestrich und dem
g
für die Angabe der Gop-Länge. Ich denke, FFmpeg glaubt, Sie versuchen, eine Ausgabe mit dem Namen "-" zu speichern. Versuchen Sie, das Leerzeichen zu löschen.quelle