ffmpeg: Datei kann nicht vom Azure-Server gelesen werden (funktioniert lokal und von AWS)

0

Ich muss in der Lage sein, ein Video mit ffmpeg zu lesen und seine Frames in JPG-Bilder zu extrahieren. Ich benutze diesen Befehl:

./ffmpeg -y -r 25 -probesize 100M -analyzeduration 100M -i http://webserver/video.mp4 -q:v 5 /destination/image_%03d.jpg

Es funktioniert einwandfrei, wenn das Video auf dem Gerät oder einem Amazon AWS-Server gespeichert ist, nicht jedoch, wenn es auf einem Windows Azure-Server gespeichert ist. Wenn das Video in webm kodiert ist, funktioniert es überall, aber ich muss es aus bestimmten Gründen in mp4 haben.

Hier ist die Ausgabe von ffmpeg:

[mov,mp4,m4a,3gp,3g2,mj2 @ 0xf70d7000] stream 0, offset 0x30: partial file
[mov,mp4,m4a,3gp,3g2,mj2 @ 0xf70d7000] Could not find codec parameters for stream 0 (Video: h264 (avc1 / 0x31637661), none, 960x540, 1236 kb/s): unspecified pixel format
Consider increasing the value for the 'analyzeduration' and 'probesize' options
http://server/video.mp4: could not find codec parameters
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'http://server/video.mp4':
Metadata:
major_brand     : isom
minor_version   : 512
compatible_brands: isomiso2avc1mp41
encoder         : Lavf56.40.101
Duration: 00:00:01.44, bitrate: 1241 kb/s
Stream #0:0(und): Video: h264 (avc1 / 0x31637661), none, 960x540, 1236 kb/s, 25 fps, 25 tbr, 12800 tbn, 25600 tbc (default)
Metadata:
handler_name    : VideoHandler
[buffer @ 0xf703a000] Unable to parse option value "-1" as pixel format
Last message repeated 1 times
[buffer @ 0xf703a000] Error setting option pix_fmt to value -1.
[graph 0 input from stream 0:0 @ 0xf70dd190] Error applying options to the filter.
Error opening filters!

Irgendeine Idee, was los ist? Könnte der Azure-Server etwas kaputt machen? Die Datei ist nicht beschädigt. Wenn ich sie herunterlade und lokal wiedergebe, funktioniert sie.

Tim Autin
quelle
Da es beim Herunterladen lokal abgespielt wird, funktioniert es. Warum nicht einfach die Eingabe mit curloder wgetoder was auch immer herunterladen und dann die lokale Kopie als Eingabe verwenden?
Logan
um das JPG-Bild so schnell wie möglich anzuzeigen. Das Herunterladen der Datei behebt das Problem, ist jedoch zu langsam.
Tim Autin
Hallo, wie groß ist Ihre Azure VM?
Shui Shengbao
Ich habe keine Ahnung, der Azure-Server gehört und wird von unserem Kunden verwaltet. Warum fragst du das? Die Videogröße beträgt normalerweise weniger als 10 MB.
Tim Autin
Ich glaube nicht, dass Azure dies einschränken wird.
Shui Shengbao

Antworten:

0

Sind Sie absolut sicher, dass die Dateien in Azure und AWS genau gleich sind? Wie in "Die Prüfsummen stimmen überein"? Die Tatsache, dass Webm-Versionen einwandfrei funktionieren, lässt mich vermuten, dass der Index der in Azure gespeicherten Datei am Ende der Datei gespeichert ist, während Sie die Datei streamen und andere Vorgänge ausführen müssen, bevor Sie den Download abschließen der Anfang.

Möglicherweise stimmt etwas anderes mit der Azure-Eingabedatei nicht, ist sie möglicherweise beschädigt? Es gibt auch diese Stackoverflow-Antwort , die eine Einstellung -probesizeauf 100 und 10 M-analyzeduration (von denen Sie anscheinend Letzteres haben) empfiehlt .

veikk0
quelle
Ja, die Dateien sind genau gleich, die Größe ist gleich, die Prüfsumme ist gleich und das Herunterladen und Lesen vor Ort funktioniert: /. Ich habe auch versucht, die Sondengröße und die Analyse einzustellen, habe aber nichts geändert.
Tim Autin