FFmpeg: Mediainfo에서 복사한 인코딩 옵션을 사용할 때 오류가 발생합니다.

FFmpeg: Mediainfo에서 복사한 인코딩 옵션을 사용할 때 오류가 발생합니다.

이것은 내 명령줄입니다.

ffmpeg -i i.mp4 -i i.png -c:v libx264 -x264-params cabac=1:ref=8:deblock=1,0,0:analyse=0x3,0x113:me=umh:subme=9:psy_rd=1.0,0.0:mixed_ref=1:me_range=64:chroma_me=1:trellis=2:8x8dct=1:cqm=0:deadzone=21,11:chroma_qp_offset=-2:threads=3:nr=0:decimate=1:mbaff=0:bframes=5:b_pyramid=1:b_adapt=2:b_bias=0:direct=3:wpredb=1:keyint=300:keyint_min=1:scenecut=54:rc=2pass:bitrate=75:ratetol=1.0:qcomp=0.64:qpmin=8:qpmax=51:qpstep=4:cplxblur=20.0:qblur=0.5:ip_ratio=1.40:pb_ratio=1.30:aq=1,1.00 -c:a copy -filter_complex 'overlay' o1.mp4

그리고 ffmpeg는 이렇게 말했습니다.

[libx264 @ 000001ded1a53d60] Error parsing option 'mixed_ref = 1'.
[libx264 @ 000001ded1a53d60] Error parsing option 'deadzone = 21,11'.
[libx264 @ 000001ded1a53d60] Error parsing option 'decimate = 1'.
[libx264 @ 000001ded1a53d60] Error parsing option 'mbaff = 0'.
[libx264 @ 000001ded1a53d60] Error parsing option 'direct = 3'.
[libx264 @ 000001ded1a53d60] Error parsing option 'wpredb = 1'.
[libx264 @ 000001ded1a53d60] Error parsing option 'rc = 2pass'.
[libx264 @ 000001ded1a53d60] Error parsing option 'ip_ratio = 1.40'.
[libx264 @ 000001ded1a53d60] Error parsing option 'pb_ratio = 1.30'.
[libx264 @ 000001ded1a53d60] Error parsing option 'aq = 1,1.00'.
[libx264 @ 000001ded1a53d60] can't open file '0'
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

어떻게 해야 하나요?

답변1

수십 가지 옵션을 선언할 필요가 없습니다. 이것이 바로 x264 인코딩 사전 설정의 목적입니다. 귀하의 출력은더 느리게사전 설정이 사용되었습니다:

ffmpeg -i i.mp4 -i i.png -filter_complex 'overlay' -c:v libx264 -preset slower -c:a copy o1.mp4
  • 를 참고하면 어떤 프리셋이 사용되었는지 알 수 있었습니다 x264 --fullhelp.

  • 이는 속도 제어 방법으로 CRF를 사용합니다. 출력에 2패스 모드가 사용되었습니다. 특정 출력 파일 크기를 대상으로 해야 하는 경우가 아니면(아마도 그렇지 않을 수도 있음) CRF를 사용하세요. 보다FFmpeg 위키: H.2642패스 예시와 사전 설정 및 CRF에 대한 추가 정보를 확인하세요.

답변2

오류는 다음과 같습니다.

[libx264 @ 000001ded1a53d60] Error parsing option 'mixed_ref = 1'.

ffmpeg가 사용하는 x264 x264_param_parse()기능에서 직접 가져옵니다.

x264는 실패한 옵션을 설정할 때 예상했던 것과 다르게 보고하는 것으로 나타났습니다. x264의 소스 코드를 사용하여 두 가지를 연관시킬 수 있습니다.

이러한 불일치 중 일부를 찾아본 결과 이것이 사용해야 하는 것으로 나타났습니다.

╔══════════════════╦═══════════════════════════════════════════╗
║ printed value    ║ setting                                   ║
╠══════════════════╬═══════════════════════════════════════════╣
║ mixed_ref        ║ mixed-refs                                ║
║ deadzone = X,Y   ║ deadzone-inter=X:deadzone-intra=Y         ║
║ decimate         ║ dct-decimate                              ║
║ direct = 0/1/2/3 ║ direct="none"/"spatial"/"temporal"/"auto" ║
║ rc               ║ implied by qp, abr, crf, 2-pass mode...   ║
║ ...              ║                                           ║
╚══════════════════╩═══════════════════════════════════════════╝

특히 "rc"는 이를 쉽게 리버스 엔지니어링할 수 있을 만큼 정확한 상관관계가 충분하지 않음을 보여줍니다. 그렇기 때문에 값을 x264 사전 설정 중 하나와 일치시키는 것이 더 쉬울 수 있습니다.

관련 정보