Ich muss HTTP-Header (user agent und ip) an einen ffmpeg-Befehl übergeben.
Ich benutze den folgenden Befehl:
%Vor%Und ich lasse einen lokalen node.js Server laufen, um die Header zu sehen, die ich bekomme:
%Vor%Ich erhalte immer einen Fehler, der besagt, dass im HTTP-Header kein CRLF gefunden wurde. und die Anfrage ist blockiert.
Wenn ich die Header lösche - alles funktioniert normal.
Ich habe auch versucht, beide Header in eine Zeichenfolge zu setzen, aber jedes Zeilenumbruchzeichen, das ich benutzt habe (\ r \ n, \ r \ n usw.), hat nicht funktioniert.
Kann mir jemand helfen, herauszufinden, wie man diesen Befehl mit den enthaltenen Kopfzeilen richtig schreibt?
Stellen Sie sicher, dass Sie die neueste ffmpeg
verwenden, und verwenden Sie die Option -user-agent
.
Für das Debugging habe ich ein BaseHTTPSever
eingerichtet, das unter 127.0.0.1:8080
mit do_GET()
as läuft:
Dadurch konnte ich deinen Befehl wie folgt ausführen:
%Vor% Wenn ich das mache, sehe ich die folgende relevante Ausgabe von ffmpeg
:
Auf dem Server habe ich gesehen:
%Vor% Es sieht also so aus, als ob ffmpeg
es selbst setzt. Aber es gibt eine Option -user-agent
bis ffmpeg
, und wenn ich -headers "User-Agent: <foo>"
durch -user-agent "<foo>"
ersetzt habe, dann habe ich es auch auf dem Server neben dem Header X-Forwarded-For
gesehen:
Letzte Anmerkung. Es gibt viele Diskussionen um Header Bugs in Trac für ffmpeg
. Was ich oben beobachtet habe (dass es im Grunde funktioniert, vielleicht mit einer kleinen Befehlsänderung), war mit einer ziemlich neuen Version:
Ihr nächster Schritt könnte also sein, dass Sie die neueste Version von ffmpeg
haben.
Nun, ffmpeg Handbuch sagt, um mehrere http-Header durch CRLF zu teilen. Das Problem ist, dass Sie Ihr erstes Argument "-header" mit dem zweiten "-header" überschreiben, da es nur ein Argument "-header" geben kann.
In Ihrem Beispiel müssen Sie User-Agent und X-Forwarded wie folgt in ein Argument mit gültiger CRLF einbinden: -header "User-Agent: Mozilla / 5.0 (Windows NT 6.1; WOW64) AppleWebKit / 537.36 (KHTML, wie Gecko) Chrome / 46.0.2490.80 Safari / 537.36" $ '\ r \ n' "X-Weitergeleitet-For: 13.14 .15.66 "$ '\ r \ n'
Verwenden Sie für set x:1
und y:2
für die Header ffmpeg-Anfrage:
Ergebnis:
%Vor%Tags und Links command-line http video ffmpeg http-headers