Der Optionswert "-1" kann nicht als Pixelformat analysiert werden, wenn mp4 in mp4 mit ffmpeg umcodiert wird


1

Ich habe versucht, ein Problem zu beheben, bei dem meine MP3-Datei nicht auf YouTube hochgeladen werden konnte (mit dem Fehler "Upload fehlgeschlagen: Datei kann nicht verarbeitet werden"). Das Video wird normal im VLC-Player wiedergegeben und kann in Vegas Pro geladen werden (durch erneutes Rendern wird das Upload-Problem behoben). Das Überprüfen von Metadaten mit MediaInfo zeigt im Vergleich zu anderen mp4-Dateien aus derselben Quelle nichts Ungewöhnliches (und hat beim Hochladen auf YouTube gut funktioniert). Nachdem ich mit verschiedenen Werkzeugen gegraben hatte, fand ich ein Problem, als ich den Anweisungen im Superuser folgte, um die ursprüngliche mp4-Datei mit ffmpeg zu transcodieren. Da dies das einzige Problem ist, das ich mit der originalen mp4-Datei feststellen kann, kann es sein, dass das Hochladen fehlschlägt. Jetzt möchte ich es reparieren.

Befehl, den ich verwendet habe, ist ffmpeg -i scripts/1.mp4 -pix_fmt yuv420p -crf 18 scripts/good.mp4

Die Ausgabe ist

ffmpeg -i scripts/1.mp4 -pix_fmt yuv420p -crf 18 scripts/good.mp4
ffmpeg version N-83577-g7e538c9 Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 4.8 (Ubuntu 4.8.4-2ubuntu1~14.04.3)
  configuration: --prefix=/home/________/ffmpeg_build --pkg-config-flags=--static --extra-cflags=-I/home/tianyig/ffmpeg_build/include --extra-ldflags=-L/home/tianyig/ffmpeg_build/lib --bindir=/home/tianyig/bin --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-nonfree
  libavutil      55. 47.100 / 55. 47.100
  libavcodec     57. 80.101 / 57. 80.101
  libavformat    57. 66.102 / 57. 66.102
  libavdevice    57.  2.100 / 57.  2.100
  libavfilter     6. 73.100 /  6. 73.100
  libswscale      4.  3.101 /  4.  3.101
  libswresample   2.  4.100 /  2.  4.100
  libpostproc    54.  2.100 / 54.  2.100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x25074a0] Could not find codec parameters for stream 0 (Video: h264 (avc1 / 0x31637661), none, 540x960, 950 kb/s): unspecified pixel format
Consider increasing the value for the 'analyzeduration' and 'probesize' options
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'scripts/1.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf56.25.101
    copyright       : @Baidu.com
  Duration: 00:12:15.90, start: 0.089000, bitrate: 1027 kb/s
    Stream #0:0(und): Video: h264 (avc1 / 0x31637661), none, 540x960, 950 kb/s, 22.58 fps, 25 tbr, 16k tbn, 32k tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 77 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
[buffer @ 0x250e200] Unable to parse option value "-1" as pixel format
    Last message repeated 1 times
[buffer @ 0x250e200] Error setting option pix_fmt to value -1.
[graph 0 input from stream 0:0 @ 0x262a4e0] Error applying options to the filter.
Error opening filters!

Es beschwert sich über pix_fmt mit dem Wert -1, aber offensichtlich habe ich bereits einen -pix_fmt yuv420pals Teil des Befehls, der anscheinend nicht beachtet wird.

Irgendeine Idee, wie man es repariert?


1
Es ist nicht über das Ausgabe-Pixel-Format zu beschweren. Das eingegebene Pixelformat wird nicht gefunden. Hinzufügen -probesize 100M -analyzeduration 100Mvor-i scripts/1.mp4
Gyan

Danke für Ihren Vorschlag. Es hilft, das Eingabepixelformat zu finden, und somit ist die Transcodierung erfolgreich. Es wurde auch erfolgreich auf YouTube hochgeladen. Tatsächlich habe ich bereits zuvor versucht, die Analysedauer und die Probesize einzustellen, aber ich habe das Gerät als Millisekunden falsch interpretiert, sodass es zu niedrig eingestellt ist.
punpun_G
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.