Як перетворити відео з ffmpeg у формат DNxHD / DNxHR?


12

Я слідую за підручником щодо роботи з cinelerra-cv, на самому початку було сказано, що найпершим кроком у роботі з cinelerra є перетворення будь-якого відеокліпу у формат dnxhd. Це було просто сказано, а не пояснено, як це зробити.

Після деяких досліджень я натрапив на ffmpeg, але не маю уявлення, як його використовувати щодо dnxhd, маючи невеликі знання, які я зібрав про ffmpeg, я здогадуюсь, як це зробити:

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

однак це не працює, і приклади, які я бачив при перетворенні в dnxhd за допомогою ffmpeg, я не розумію, вони, здавалося, щоразу мали різні теги, не пояснюючи, чому їх використовувати.


1
deb-indus.org/tuto/ffmpeg-howto.htm#Encoding_VC-3 запропонував биffmpeg -i <input_file> -vcodec dnxhd -b <bitrate> -an output.mov
Rinzwind

дякую, я бачив це раніше і мені було на кшталт: Чи потрібно вказати бітрейт і чи не має він мати звуку (-an)? .... я маю на увазі, чи можна працювати тільки в cinelerra з dnxhd відеокліпами, які не мають звуку?
акулант

1
-b <int> : Set video bitrate in bit/s ( default = 200k ).тому я б припустив, що ви повинні додати бітрейт, оскільки 200k не є дійсним варіантом. Але -anя б упустив :)
Rinzwind

чи бітрейт залежить від вихідного файлу чи файлу, у який потрібно перетворити? .... я маю на увазі, якщо я просто спробую використовувати 200, чи може це працювати?
акулант

Ні. Вам потрібно вказати бітрейт для цього конкретного кодера.
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 призначений для роздільної здатності більше 1080p, таких як 2K, 4K і 8K.

Якщо ви хочете DNxHR, тоді додайте параметр -profile:vвиводу, наприклад -profile:v dnxhr_hq.

Можна вибрати зі значень dnxhd, dnxhr_444, dnxhr_hqx, dnxhr_hq, dnxhr_sq, dnxhr_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 повинен відповідати лише певній частоті кадрів. Для максимальної сумісності я рекомендував використовувати лише правильну комбінацію бітрейта / частоти кадрів. Тому скористайтеся командою вище, щоб отримати належні формати бітрейтів та пікселів, прийняті ffmpegта перехресне посилання зі списком Avid дозволів DNxHD або Білою книгою DNxHD (стор. 9) для правильної частоти кадрів.

  • Частота кадрів, наведена у наведених вище посиланнях, використовує неточні округлі наближення. Власні значення наведені нижче; скорочена назва - зліва, а правильне значення - праворуч.

    • 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 вище.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.