So konvertieren Sie ein Video mit h264 yuvj420p und pcm u8 in eine MOV-Datei

So konvertieren Sie ein Video mit h264 yuvj420p und pcm u8 in eine MOV-Datei

Ich möchte einige Videos konvertieren, damit sie auf einer digitalen Canon-Kamera abgespielt werden können.

Die Videos der Canon PowerShot-Kamera haben folgende Spezifikationen:

Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuvj420p, 1280x720, 22865 kb/s, 29.97 fps
Audio: pcm_u8 (raw  / 0x20776172), 12000 Hz, mono, u8, 96 kb/s

Wie müsste die ffmpeg-Befehlszeile aussehen, um solche Videos zu erzeugen? Oder wo kann ich darüber lesen? Ich habe versucht, sie zu finden, und ffmpeg -formatsbekomme eine große Liste mit Formaten angezeigt. Dadurch und durch weiteres Lesen der Manpage bin ich zu diesem Befehl gekommen:

ffmpeg -i oldmovie.mp4 -acodec pcm_u8 -ar 12000 -ac 1 -vcodec copy -pix_fmt yuvj420p MVI_2655.MOV

aber es funktioniert immer noch nicht. Die Videospezifikation ist anders.

Das Video, das ich bekomme, ist:

Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x272 [SAR 153:154 DAR 180:77], 326 kb/s

aber das richtige Video sollte

Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuvj420p, 1280x720, 22865 kb/s

Ich denke, die Lösung ist nicht das Problem, sondern dieHochgegenEingeschränkte Baseline. Und dasyuv420pgegenüber demyuvj420p. Wie erreiche ich diese Spezifikationen?

Antwort1

Mit dem Hinweis von Ely und etwas weiterer Recherche habe ich diese Kommandozeile gefunden, die genau die gleichen Formatangaben erzeugt:

ffmpeg -i oldmovie.mp4 -acodec pcm_u8 -ar 12000 -ac 1 -vcodec libx264 -pix_fmt yuvj420p -profile:v baseline -s 1280x720 -r ntsc -colorspace smpte170m -color_primaries bt709 -color_trc bt709 MVI_2655.MOV

Wo

  • -vcodec libx264zusammen mit -profile:v baselineund -pix_fmt yuvj420pstellt das Video auf Eingeschränkte Baselineund das Pixelformat aufyuvj420p
  • -colorspace smpte170mund setzt die drei Pixelformat-Unterspezifikationen nach yuvj420p(pc,…), die ich gefunden -color_primaries bt709habe-color_trc bt709Hier
  • -r ntscstellt eine Framerate von 29,97 ein (wobei ntsc ein Alias ​​für die Framerate ist)
  • -s 1280x720skaliert das Video auf die gleiche Breite und Höhe wie das Original-Canon-Video

Der einzige Unterschied besteht jetzt in der Bitrate, die für mein mit ffmpeg erstelltes Video 4065 kb/s und für das Canon-Video 21588 kb/s beträgt.

Trotzdem lässt sich das Video auf der Canon Kamera nicht abspielen. :-(

verwandte Informationen