Jak przekonwertować wideo za pomocą ffmpeg na format DNxHD / DNxHR?


12

Postępuję zgodnie z samouczkiem dotyczącym pracy z cinelerra-cv, na samym początku powiedziano, że pierwszym krokiem w pracy z cinelerra jest konwersja dowolnego klipu wideo do formatu dnxhd. Po prostu powiedziano, a nie wyjaśniono, jak to zrobić.

Po kilku badaniach natknąłem się na ffmpeg, ale nie mam pojęcia, jak go używać w odniesieniu do dnxhd, przy niewielkiej wiedzy, którą zgromadziłem na temat ffmpeg, zgaduję, jak to zrobić:

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

jednak to nie działa, a przykłady, które widziałem przy konwersji do dnxhd z ffmpeg, nie rozumiem, wydawały się za każdym razem, mając różne tagi bez wyjaśnienia, dlaczego ich używać.


1
deb-indus.org/tuto/ffmpeg-howto.htm#Encoding_VC-3 sugerowałbyffmpeg -i <input_file> -vcodec dnxhd -b <bitrate> -an output.mov
— Rinzwind

dzięki, widziałem to już wcześniej i pomyślałem: Czy muszę określać szybkość transmisji i czy nie musi ona mieć dźwięku (-an)? .... mam na myśli, czy można pracować tylko w cinelerra z wideoklipami dnxhd, które nie mają dźwięku?
— sharkant

1
-b <int> : Set video bitrate in bit/s ( default = 200k ).zakładam, że musisz dodać bitrate, ponieważ 200k nie jest prawidłową opcją. Ale -an
— spadłbym

czy szybkość transmisji zależy od pliku źródłowego lub pliku, na który chce się przekonwertować? .... mam na myśli, jeśli spróbuję użyć 200, czy to zadziała?
— rekin

Nie. Musisz określić szybkość transmisji dla tego konkretnego kodera.
— llogan 21.04.17

Odpowiedzi:


18

Jest to wybredny enkoder, więc musisz wybrać odpowiednie parametry, w tym:

  • częstotliwość wyświetlania klatek
  • format pikseli / przestrzeń kolorów
  • szerokość x wysokość / rozdzielczość / rozmiar ramki
  • bitrate

Zobacz prawidłowe parametry DNxHD poniżej, aby uzyskać zaakceptowane wartości.


Przykład DNxHD

Ten przykład zostanie skalowany do 1280 x 720, wybierz częstotliwość odświeżania 30000/1001 (aka „29,97”) i format pikselowy YUV 4: 2: 2 płaski.

ffmpeg -i input -c:v dnxhd -vf "scale=1280:720,fps=30000/1001,format=yuv422p" -b:v 110M -c:a pcm_s16le output.mov
  • Jeśli plik wejściowy jest już zgodny z niektórymi zaakceptowanymi parametrami, nie musisz ich ręcznie deklarować.

  • Pojemnikiem formatu wyjściowego dla DNxHD jest zazwyczaj MXF lub MOV.


Przykład DNxHR

DNxHR jest przeznaczony dla rozdzielczości większych niż 1080p, takich jak 2K, 4K i 8K.

Jeśli chcesz DNxHR, dodaj -profile:vopcję wyjścia, na przykład -profile:v dnxhr_hq.

Akceptowane są następujące wartości: dnxhd, dnxhr_444, dnxhr_hqx, dnxhr_hq, dnxhr_sq, dnxhr_lb.

  • DNxHR LB: dnxhr_lb- Niska przepustowość. 8-bit 4: 2: 2 ( yuv422p). Jakość offline.
  • DNxHR SQ: dnxhr_sq- Standardowa jakość. 8-bit 4: 2: 2 ( yuv422p). Nadaje się do formatu dostawy.
  • DNxHR HQ: dnxhr_hq- Wysoka jakość. 8-bit 4: 2: 2 ( yuv422p).
  • DNxHR HQX: dnxhr_hqx- Wysoka jakość. 10-bit 4: 2: 2 ( yuv422p10le). Dostawa w jakości UHD / 4K.
  • DNxHR 444: dnxhr_444- Jakość wykończenia. 10-bit 4: 4: 4 ( yuv444p10le). Dostawa w jakości kinowej.

Powyższa lista została zaadaptowana z kodeka DNxHR .


Prawidłowe parametry DNxHD

ffmpeg zakończy się niepowodzeniem, jeśli podasz niepoprawne wartości, ale może dostarczyć listę akceptowanych wartości.

Możesz wyświetlić listę za pomocą następującego polecenia „manekina”:

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

Ważne uwagi na temat liczby klatek na sekundę

  • Brakuje liczby klatek na liście generowanej z tego polecenia. ffmpegślepo zaakceptuje dowolną liczbę klatek na sekundę dla tego kodera, a oprogramowanie Avid podobno je zaakceptuje (niepotwierdzone), ale przepływność DNxHD powinna być dopasowana tylko do określonych częstotliwości klatek. Aby uzyskać maksymalną kompatybilność, zalecałem stosowanie tylko właściwej kombinacji szybkości transmisji / liczby klatek. Więc użyj powyższego polecenia, aby uzyskać prawidłowe bitrate i formaty pikseli akceptowane przez ffmpeg, i odnieś się do Listy Avid rozdzielczości DNxHD lub Białej księgi DNxHD (strona 9), aby uzyskać właściwe częstotliwości klatek.

  • Częstości klatek wymienione w powyższych linkach wykorzystują niedokładne zaokrąglone przybliżenia. Odpowiednie wartości są wymienione poniżej; skrócona nazwa znajduje się po lewej stronie, a właściwa wartość po prawej stronie.

    • 29,97 = 30000/1001 (lub użyj aliasu ntsc)
    • 59,94 = 60000/1001
    • 23,967 = 24000/1001 (lub użyj aliasu ntsc-film)

Więcej opcji

Aby uzyskać dodatkowe opcje specyficzne dla kodera i listę obsługiwanych formatów pikseli, patrz:

ffmpeg -h encoder=dnxhd

Błędy

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!

Oznacza to, że liczba klatek na sekundę, szerokość, wysokość, format pikseli i / lub szybkość transmisji są nieprawidłowe. Patrz prawidłowe parametry DNxHD powyżej dla akceptowanych wartości.

pixel format is incompatible with DNxHD profile

Wybierz odpowiedni format pikseli za pomocą filtra formatu . Zobacz przykład DNxHD powyżej.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.