Wie konvertiere ich ein Video mit ffmpeg in das DNxHD / DNxHR-Format?

11

Ich folge einem Tutorial zur Arbeit mit cinelerra-cv. Am Anfang wurde gesagt, dass der allererste Schritt bei der Arbeit mit cinelerra darin besteht, jeden Videoclip in das dnxhd-Format zu konvertieren. Es wurde nur gesagt, nicht erklärt, wie es geht.

Nach einigen Recherchen bin ich auf ffmpeg gestoßen, aber ich habe keine Ahnung, wie ich es in Bezug auf dnxhd verwenden soll. Mit dem geringen Wissen, das ich über ffmpeg gesammelt habe, würde ich raten, wie es geht:

ffmpeg -i <video-clip> -vcodec dnxhd <video-clip-in-dnxhd>

Dies funktioniert jedoch nicht, und die Beispiele, die ich beim Konvertieren in dnxhd mit ffmpeg gesehen habe, verstehe ich nicht. Sie schienen jedes Mal unterschiedliche Tags zu haben, ohne zu erklären, warum sie verwendet werden sollten.

Hai
quelle
1
deb-indus.org/tuto/ffmpeg-howto.htm#Encoding_VC-3 würde vorschlagenffmpeg -i <input_file> -vcodec dnxhd -b <bitrate> -an output.mov
Rinzwind
danke, ich habe diese schon einmal gesehen und dachte: Muss ich eine Bitrate angeben und muss sie keinen Ton haben (-an)? .... ich meine kann man in cinelerra nur mit dnxhd videoclips arbeiten, die keinen sound haben?
Hai
1
-b <int> : Set video bitrate in bit/s ( default = 200k ).Daher würde ich davon ausgehen, dass Sie eine Bitrate hinzufügen müssen, da 200 KB keine gültige Option sind. Aber das -anwürde ich fallen lassen :)
Rinzwind
Hängt die Bitrate von der Quelldatei oder der Datei ab, in die konvertiert werden soll? .... ich meine, wenn ich nur versuche, 200 zu verwenden, könnte es funktionieren?
Hai
Nein. Sie müssen die Bitrate für diesen bestimmten Encoder angeben.
Llogan

Antworten:

17

Dies ist ein wählerischer Encoder, daher müssen Sie die richtigen Parameter auswählen, einschließlich:

  • Bildrate
  • Pixelformat / Farbraum
  • Breite x Höhe / Auflösung / Rahmengröße
  • Bitrate

Akzeptierte Werte finden Sie in den folgenden gültigen DNxHD-Parametern .


DNxHD-Beispiel

In diesem Beispiel wird auf 1280 x 720 skaliert, eine Bildrate von 30000/1001 (auch bekannt als "29,97") und ein Pixelformat von YUV 4: 2: 2 planar gewählt.

ffmpeg -i input -c:v dnxhd -vf "scale=1280:720,fps=30000/1001,format=yuv422p" -b:v 110M -c:a pcm_s16le output.mov
  • Wenn Ihre Eingabedatei bereits einigen der akzeptierten Parameter entspricht, müssen Sie sie nicht manuell deklarieren.

  • Der Ausgabeformatcontainer für DNxHD ist normalerweise MXF oder MOV.


DNxHR Beispiel

DNxHR ist für Auflösungen größer als 1080p geeignet, z. B. 2K, 4K und 8K.

Wenn Sie DNxHR möchten, fügen Sie die Ausgabeoption hinzu -profile:v, z -profile:v dnxhr_hq.

Zulässige Werte sind: dnxhd, dnxhr_444, dnxhr_hqx, dnxhr_hq, dnxhr_sq, dnxhr_lb.

  • DNxHR LB: dnxhr_lb- Geringe Bandbreite. 8-Bit 4: 2: 2 ( yuv422p). Offline-Qualität.
  • DNxHR SQ: dnxhr_sq- Standardqualität. 8-Bit 4: 2: 2 ( yuv422p). Geeignet für Lieferformat.
  • DNxHR HQ: dnxhr_hq- Hohe Qualität. 8-Bit 4: 2: 2 ( yuv422p).
  • DNxHR HQX: dnxhr_hqx- Hohe Qualität. 10-Bit 4: 2: 2 ( yuv422p10le). UHD / 4K-Übertragung in Broadcast-Qualität.
  • DNxHR 444: dnxhr_444- Veredelungsqualität. 10-Bit 4: 4: 4 ( yuv444p10le). Lieferung in Kinoqualität.

Die obige Liste wurde aus dem DNxHR-Codec angepasst .


Gültige DNxHD-Parameter

ffmpeg schlägt fehl, wenn Sie falsche Werte angeben, kann jedoch eine Liste der akzeptierten Werte enthalten.

Sie können die Liste mit dem folgenden "Dummy" -Befehl anzeigen:

ffmpeg -f lavfi -i testsrc2 -c:v dnxhd -f null -

Wichtige Hinweise zur Bildrate

  • Die Bildrate fehlt in der Liste, die mit diesem Befehl generiert wird. ffmpegakzeptiert blind jede Bildrate für diesen Encoder, und die Avid-Software akzeptiert sie Berichten zufolge (nicht bestätigt), aber die DNxHD-Bitrate soll nur an bestimmte Bildraten angepasst werden. Für maximale Kompatibilität habe ich empfohlen, nur die richtige Kombination aus Bitrate und Bildrate zu verwenden. Verwenden Sie daher den obigen Befehl, um die richtigen Bitraten und Pixelformate zu erhalten, die von ffmpegder Liste der Avid-DNxHD-Auflösungen akzeptiert werden , und verweisen Sie auf die Liste der Avid-DNxHD-Auflösungen oder das DNxHD-Whitepaper (Seite 9), um die richtigen Bildraten zu erhalten.

  • Die in den obigen Links aufgeführten Bildraten verwenden ungenaue gerundete Näherungen. Die richtigen Werte sind unten aufgeführt. Der abgekürzte Name befindet sich links und der richtige Wert rechts.

    • 29,97 = 30000/1001 (oder verwenden Sie den Alias ntsc)
    • 59,94 = 60000/1001
    • 23.967 = 24000/1001 (oder verwenden Sie den Alias ntsc-film)

Mehr Optionen

Weitere Encoder-spezifische Optionen und eine Liste der unterstützten Pixelformate finden Sie unter:

ffmpeg -h encoder=dnxhd

Fehler

ff_frame_thread_encoder_init failed
Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height
Conversion failed!

Dies bedeutet, dass Ihre Bildrate, Breite, Höhe, Pixelformat und / oder Bitrate falsch sind. Informationen zu akzeptierten Werten finden Sie oben unter Gültige DNxHD-Parameter .

pixel format is incompatible with DNxHD profile

Wählen Sie mit dem Formatfilter ein geeignetes Pixelformat . Siehe das obige DNxHD-Beispiel.

llogan
quelle