ffmpeg가 포함 된 비디오를 DNxHD / DNxHR 형식으로 변환하는 방법은 무엇입니까?


12

cinelerra-cv로 작업하는 방법에 대한 자습서를 따르고 있습니다. cinelerra를 사용하는 첫 번째 단계는 비디오 클립을 dnxhd 형식으로 변환하는 것입니다. 그것을하는 방법을 설명하지 않고 방금 말했다.

몇 가지 연구를 한 후에 ffmpeg를 발견했지만 ffmpeg에 대해 수집 한 지식이 거의 없기 때문에 dnxhd와 관련하여 사용하는 방법을 모릅니다.

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에서만 작동 할 수 있습니까?
상어

1
-b <int> : Set video bitrate in bit/s ( default = 200k ).200k는 유효한 옵션이 아니므로 비트 전송률을 추가해야한다고 가정합니다. 그러나 -an나는 떨어질 것입니다 :)
Rinzwind

비트 전송률은 소스 파일 또는 변환하려는 파일에 따라 달라 집니까? .... 200을 사용하려고하면 작동 할 수 있습니까?
상어

아니요.이 특정 인코더의 비트 전송률을 지정해야합니다.
llogan

답변:


18

이것은 까다로운 인코더이므로 다음과 같은 적절한 매개 변수를 선택해야합니다.

  • 프레임 속도
  • 픽셀 형식 / 색 공간
  • 너비 x 높이 / 해상도 / 프레임 크기
  • 비트 레이트

허용되는 값은 아래 의 유효한 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.

허용되는 값은 다음과 같습니다 : 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 본사 : 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.