ffmpegでビデオをDNxHD / DNxHR形式に変換する方法は?


12

私はcinelerra-cvの操作方法についてのチュートリアルに従っていますが、最初に言ったのは、cinelerraを操作する最初のステップは、ビデオクリップをdnxhd形式に変換することです。それは言われたばかりで、それを行う方法は説明されていませんでした。

いくつかの調査の後、私はffmpegに出くわしましたが、dnxhdに関してそれをどのように使用するのかわかりません。ffmpegについて収集した少しの知識があれば、それを行う方法は次のようになると思います。

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

しかし、これは機能せず、ffmpegを使用してdnxhdに変換するときに見た例は理解できません。なぜそれらを使用するのかを説明することなく、タグが毎回異なるように見えました。


1
deb-indus.org/tuto/ffmpeg-howto.htm#Encoding_VC-3の提案ffmpeg -i <input_file> -vcodec dnxhd -b <bitrate> -an output.mov
Rinzwind

おかげで、私はこれを以前に見たことがあるのですが、ビットレートを指定する必要があり、サウンドがない(-an)必要がありますか?....つまり、音が出ないdnxhdビデオクリップを備えたcinelerraでしか機能しないのですか?
シャーカント2017

1
-b <int> : Set video bitrate in bit/s ( default = 200k ).200kは有効なオプションではないので、ビットレートを追加する必要があると思います。しかし、-an私はドロップします:)
Rinzwind 2017

ビットレートは、ソースファイルまたは変換先のファイルに依存しますか?....つまり、200を使用するだけでうまくいくのですか?
シャーカント2017

いいえ。この特定のエンコーダのビットレートを指定する必要があります。
llogan

回答:


18

これはうるさいエンコーダなので、次のような適切なパラメータを選択する必要があります。

  • フレームレート
  • ピクセル形式/色空間
  • 幅×高さ/解像度/フレームサイズ
  • ビットレート

受け入れられる値については、以下の有効なDNxHDパラメータを参照してください。


DNxHDの例

この例では、1280x720にスケーリングし、フレームレートを30000/1001(別名 "29.97")、ピクセルフォーマットをYUV 4:2:2平面に選択します。

ffmpeg -i input -c:v dnxhd -vf "scale=1280:720,fps=30000/1001,format=yuv422p" -b:v 110M -c:a pcm_s16le output.mov
  • 入力ファイルが既に受け入れられているパラメーターのいくつかに準拠している場合は、手動でそれらを宣言する必要はありません。

  • DNxHDの出力形式コンテナは、通常MXFまたはMOVです。


DNxHRの例

DNxHRは、2K、4K、8Kなどの1080pより大きい解像度用です。

DNxHRが必要な場合は-profile:v、などの出力オプションを追加します-profile:v dnxhr_hq

有効な値は以下のとおりです。dnxhddnxhr_444dnxhr_hqxdnxhr_hqdnxhr_sqdnxhr_lb

  • DNxHR LB:dnxhr_lb-低帯域幅。8ビット4:2:2(yuv422p)。オフライン品質。
  • DNxHR SQ:dnxhr_sq-標準品質。8ビット4:2:2(yuv422p)。配信フォーマットに適しています。
  • DNxHR HQ:dnxhr_hq-高品質。8ビット4:2:2(yuv422p)。
  • DNxHR HQX:dnxhr_hqx-高品質。10ビット4:2:2(yuv422p10le)。UHD / 4K放送品質の配信。
  • DNxHR 444:dnxhr_444-仕上げ品質。10ビット4:4:4(yuv444p10le)。映画品質の配信。

上記のリストはDNxHRコーデックを基にしています。


有効なDNxHDパラメータ

ffmpeg 誤った値を指定すると失敗しますが、受け入れられるもののリストが提供される可能性があります。

次の「ダミー」コマンドでリストを表示できます。

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

フレームレートに関する重要事項

  • このコマンドから生成されたリストにフレームレートがありません。ffmpegこのエンコーダーのフレームレートを盲目的に受け入れ、Avidソフトウェアはそれを受け入れる(未確認)と報告されていますが、DNxHDビットレートは特定のフレームレートのみに一致することになっています。互換性を最大にするために、適切なビットレート/フレームレートの組み合わせのみを使用することをお勧めします。上記のコマンドを使用して、で受け入れられる適切なビットレートとピクセルフォーマットを取得し、適切なフレームレートについて、Avid DNxHD解像度のリストまたはDNxHDホワイトペーパー(9ページ)ffmpegと相互参照してください。

  • 上記のリンクにリストされているフレームレートは、不正確な丸めの近似を使用しています。適切な値を以下に示します。省略名は左側にあり、適切な値は右側にあります。

    • 29.97 = 30000/1001(またはエイリアスを使用ntsc
    • 59.94 = 60000/1001
    • 23.967 = 24000/1001(またはエイリアスを使用ntsc-film

より多くのオプション

追加のエンコーダ固有のオプション、およびサポートされているピクセル形式のリストについては、以下を参照してください。

ffmpeg -h encoder=dnxhd

エラー

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!

これは、フレームレート、幅、高さ、ピクセル形式、ビットレートが正しくないことを意味します。受け入れられる値については、上記の有効なDNxHDパラメータを参照してください。

pixel format is incompatible with DNxHD profile

フォーマットフィルターを使用して適切なピクセルフォーマットを選択します。上記のDNxHDの例を参照してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.