NVENC를 사용한 FFMpeg에 대한 최상의 설정


26

내가 사용하고 FFMPEG을 내 GPU (의 suport와 NVENC H264 .MP4-파일로 내 위성 수신기에서 변환 파일 (SD, MPEG2의 .TS-파일)로)

여기 내가 사용하는 선이 있습니다.

ffmpeg -i "e:\input.ts" -vcodec h264_nvenc -preset slow -level 4.1
       -qmin 10 -qmax 52 "e:\output.mp4"

그러나 품질이 예상만큼 좋지 않습니다. 그리고 내 시스템의 모든 힘은 사용되지 않습니다 :

여기에 이미지 설명을 입력하십시오

11 % GPU 및 30 % CPU 사용량.

질문 : 동일한 파일 크기로 품질을 개선하고 Geforce GTX 1080의 더 많은 계산 성능을 사용할 수 있도록 몇 가지 개선 사항이 있습니까?

林正浩 에서 변경하기 위해 몇 가지 매개 변수찾았 지만 -preset slow이미 최고의 품질 접근 방식이어야합니까?

답변:


37

다음은 인코더 튜닝에 대한 대략적인 안내서입니다.

우리는 기본에서 시작합니다. 옵션의 빠른 발사가 원하는 목표와 기대치를 이해하지 않고 갑자기 예상 결과를 향상시킬 것이라는 결론에 뛰어 들기 때문에 다음과 같이 시작합니다.

1. 엔코더의 옵션을 이해하여 시작하십시오.

NVENC 기반 엔코더의 경우, 각 엔코더가 취하는 옵션을 배우는 것부터 시작하십시오 (리눅스를 사용하고 있으므로 xclip을 사용하여 코덱 옵션을 클립 보드에 붙여 넣기 전에 여기에 붙여 넣습니다).

(ㅏ). H.264 인코더의 경우 :

ffmpeg -hide_banner -h encoder=h264_nvenc | xclip -sel clip

산출:

Encoder h264_nvenc [NVIDIA NVENC H.264 encoder]:
    General capabilities: delay 
    Threading capabilities: none
    Supported pixel formats: yuv420p nv12 p010le yuv444p yuv444p16le bgr0 rgb0 cuda
h264_nvenc AVOptions:
  -preset            <int>        E..V.... Set the encoding preset (from 0 to 11) (default medium)
     default                      E..V.... 
     slow                         E..V.... hq 2 passes
     medium                       E..V.... hq 1 pass
     fast                         E..V.... hp 1 pass
     hp                           E..V.... 
     hq                           E..V.... 
     bd                           E..V.... 
     ll                           E..V.... low latency
     llhq                         E..V.... low latency hq
     llhp                         E..V.... low latency hp
     lossless                     E..V.... 
     losslesshp                   E..V.... 
  -profile           <int>        E..V.... Set the encoding profile (from 0 to 3) (default main)
     baseline                     E..V.... 
     main                         E..V.... 
     high                         E..V.... 
     high444p                     E..V.... 
  -level             <int>        E..V.... Set the encoding level restriction (from 0 to 51) (default auto)
     auto                         E..V.... 
     1                            E..V.... 
     1.0                          E..V.... 
     1b                           E..V.... 
     1.0b                         E..V.... 
     1.1                          E..V.... 
     1.2                          E..V.... 
     1.3                          E..V.... 
     2                            E..V.... 
     2.0                          E..V.... 
     2.1                          E..V.... 
     2.2                          E..V.... 
     3                            E..V.... 
     3.0                          E..V.... 
     3.1                          E..V.... 
     3.2                          E..V.... 
     4                            E..V.... 
     4.0                          E..V.... 
     4.1                          E..V.... 
     4.2                          E..V.... 
     5                            E..V.... 
     5.0                          E..V.... 
     5.1                          E..V.... 
  -rc                <int>        E..V.... Override the preset rate-control (from -1 to INT_MAX) (default -1)
     constqp                      E..V.... Constant QP mode
     vbr                          E..V.... Variable bitrate mode
     cbr                          E..V.... Constant bitrate mode
     vbr_minqp                    E..V.... Variable bitrate mode with MinQP (deprecated)
     ll_2pass_quality              E..V.... Multi-pass optimized for image quality (deprecated)
     ll_2pass_size                E..V.... Multi-pass optimized for constant frame size (deprecated)
     vbr_2pass                    E..V.... Multi-pass variable bitrate mode (deprecated)
     cbr_ld_hq                    E..V.... Constant bitrate low delay high quality mode
     cbr_hq                       E..V.... Constant bitrate high quality mode
     vbr_hq                       E..V.... Variable bitrate high quality mode
  -rc-lookahead      <int>        E..V.... Number of frames to look ahead for rate-control (from 0 to INT_MAX) (default 0)
  -surfaces          <int>        E..V.... Number of concurrent surfaces (from 0 to 64) (default 0)
  -cbr               <boolean>    E..V.... Use cbr encoding mode (default false)
  -2pass             <boolean>    E..V.... Use 2pass encoding mode (default auto)
  -gpu               <int>        E..V.... Selects which NVENC capable GPU to use. First GPU is 0, second is 1, and so on. (from -2 to INT_MAX) (default any)
     any                          E..V.... Pick the first device available
     list                         E..V.... List the available devices
  -delay             <int>        E..V.... Delay frame output by the given amount of frames (from 0 to INT_MAX) (default INT_MAX)
  -no-scenecut       <boolean>    E..V.... When lookahead is enabled, set this to 1 to disable adaptive I-frame insertion at scene cuts (default false)
  -forced-idr        <boolean>    E..V.... If forcing keyframes, force them as IDR frames. (default false)
  -b_adapt           <boolean>    E..V.... When lookahead is enabled, set this to 0 to disable adaptive B-frame decision (default true)
  -spatial-aq        <boolean>    E..V.... set to 1 to enable Spatial AQ (default false)
  -temporal-aq       <boolean>    E..V.... set to 1 to enable Temporal AQ (default false)
  -zerolatency       <boolean>    E..V.... Set 1 to indicate zero latency operation (no reordering delay) (default false)
  -nonref_p          <boolean>    E..V.... Set this to 1 to enable automatic insertion of non-reference P-frames (default false)
  -strict_gop        <boolean>    E..V.... Set 1 to minimize GOP-to-GOP rate fluctuations (default false)
  -aq-strength       <int>        E..V.... When Spatial AQ is enabled, this field is used to specify AQ strength. AQ strength scale is from 1 (low) - 15 (aggressive) (from 1 to 15) (default 8)
  -cq                <float>      E..V.... Set target quality level (0 to 51, 0 means automatic) for constant quality mode in VBR rate control (from 0 to 51) (default 0)
  -aud               <boolean>    E..V.... Use access unit delimiters (default false)
  -bluray-compat     <boolean>    E..V.... Bluray compatibility workarounds (default false)
  -init_qpP          <int>        E..V.... Initial QP value for P frame (from -1 to 51) (default -1)
  -init_qpB          <int>        E..V.... Initial QP value for B frame (from -1 to 51) (default -1)
  -init_qpI          <int>        E..V.... Initial QP value for I frame (from -1 to 51) (default -1)
  -qp                <int>        E..V.... Constant quantization parameter rate control method (from -1 to 51) (default -1)
  -weighted_pred     <int>        E..V.... Set 1 to enable weighted prediction (from 0 to 1) (default 0)
  -coder             <int>        E..V.... Coder type (from -1 to 2) (default default)
     default                      E..V.... 
     auto                         E..V.... 
     cabac                        E..V.... 
     cavlc                        E..V.... 
     ac                           E..V.... 
     vlc                          E..V.... 

(비). HEVC / H.265 인코더의 경우 :

ffmpeg -hide_banner -h encoder=hevc_nvenc | xclip -sel clip

산출:

Encoder hevc_nvenc [NVIDIA NVENC hevc encoder]:
    General capabilities: delay 
    Threading capabilities: none
    Supported pixel formats: yuv420p nv12 p010le yuv444p yuv444p16le bgr0 rgb0 cuda
hevc_nvenc AVOptions:
  -preset            <int>        E..V.... Set the encoding preset (from 0 to 11) (default medium)
     default                      E..V.... 
     slow                         E..V.... hq 2 passes
     medium                       E..V.... hq 1 pass
     fast                         E..V.... hp 1 pass
     hp                           E..V.... 
     hq                           E..V.... 
     bd                           E..V.... 
     ll                           E..V.... low latency
     llhq                         E..V.... low latency hq
     llhp                         E..V.... low latency hp
     lossless                     E..V.... lossless
     losslesshp                   E..V.... lossless hp
  -profile           <int>        E..V.... Set the encoding profile (from 0 to 4) (default main)
     main                         E..V.... 
     main10                       E..V.... 
     rext                         E..V.... 
  -level             <int>        E..V.... Set the encoding level restriction (from 0 to 186) (default auto)
     auto                         E..V.... 
     1                            E..V.... 
     1.0                          E..V.... 
     2                            E..V.... 
     2.0                          E..V.... 
     2.1                          E..V.... 
     3                            E..V.... 
     3.0                          E..V.... 
     3.1                          E..V.... 
     4                            E..V.... 
     4.0                          E..V.... 
     4.1                          E..V.... 
     5                            E..V.... 
     5.0                          E..V.... 
     5.1                          E..V.... 
     5.2                          E..V.... 
     6                            E..V.... 
     6.0                          E..V.... 
     6.1                          E..V.... 
     6.2                          E..V.... 
  -tier              <int>        E..V.... Set the encoding tier (from 0 to 1) (default main)
     main                         E..V.... 
     high                         E..V.... 
  -rc                <int>        E..V.... Override the preset rate-control (from -1 to INT_MAX) (default -1)
     constqp                      E..V.... Constant QP mode
     vbr                          E..V.... Variable bitrate mode
     cbr                          E..V.... Constant bitrate mode
     vbr_minqp                    E..V.... Variable bitrate mode with MinQP (deprecated)
     ll_2pass_quality              E..V.... Multi-pass optimized for image quality (deprecated)
     ll_2pass_size                E..V.... Multi-pass optimized for constant frame size (deprecated)
     vbr_2pass                    E..V.... Multi-pass variable bitrate mode (deprecated)
     cbr_ld_hq                    E..V.... Constant bitrate low delay high quality mode
     cbr_hq                       E..V.... Constant bitrate high quality mode
     vbr_hq                       E..V.... Variable bitrate high quality mode
  -rc-lookahead      <int>        E..V.... Number of frames to look ahead for rate-control (from 0 to INT_MAX) (default 0)
  -surfaces          <int>        E..V.... Number of concurrent surfaces (from 0 to 64) (default 0)
  -cbr               <boolean>    E..V.... Use cbr encoding mode (default false)
  -2pass             <boolean>    E..V.... Use 2pass encoding mode (default auto)
  -gpu               <int>        E..V.... Selects which NVENC capable GPU to use. First GPU is 0, second is 1, and so on. (from -2 to INT_MAX) (default any)
     any                          E..V.... Pick the first device available
     list                         E..V.... List the available devices
  -delay             <int>        E..V.... Delay frame output by the given amount of frames (from 0 to INT_MAX) (default INT_MAX)
  -no-scenecut       <boolean>    E..V.... When lookahead is enabled, set this to 1 to disable adaptive I-frame insertion at scene cuts (default false)
  -forced-idr        <boolean>    E..V.... If forcing keyframes, force them as IDR frames. (default false)
  -spatial_aq        <boolean>    E..V.... set to 1 to enable Spatial AQ (default false)
  -temporal_aq       <boolean>    E..V.... set to 1 to enable Temporal AQ (default false)
  -zerolatency       <boolean>    E..V.... Set 1 to indicate zero latency operation (no reordering delay) (default false)
  -nonref_p          <boolean>    E..V.... Set this to 1 to enable automatic insertion of non-reference P-frames (default false)
  -strict_gop        <boolean>    E..V.... Set 1 to minimize GOP-to-GOP rate fluctuations (default false)
  -aq-strength       <int>        E..V.... When Spatial AQ is enabled, this field is used to specify AQ strength. AQ strength scale is from 1 (low) - 15 (aggressive) (from 1 to 15) (default 8)
  -cq                <float>      E..V.... Set target quality level (0 to 51, 0 means automatic) for constant quality mode in VBR rate control (from 0 to 51) (default 0)
  -aud               <boolean>    E..V.... Use access unit delimiters (default false)
  -bluray-compat     <boolean>    E..V.... Bluray compatibility workarounds (default false)
  -init_qpP          <int>        E..V.... Initial QP value for P frame (from -1 to 51) (default -1)
  -init_qpB          <int>        E..V.... Initial QP value for B frame (from -1 to 51) (default -1)
  -init_qpI          <int>        E..V.... Initial QP value for I frame (from -1 to 51) (default -1)
  -qp                <int>        E..V.... Constant quantization parameter rate control method (from -1 to 51) (default -1)
  -weighted_pred     <int>        E..V.... Set 1 to enable weighted prediction (from 0 to 1) (default 0)

2. 하드웨어의 한계를 이해하고 옵션을 적용하기 전에 먼저 정상 기본값을 고수하십시오.

NVENC에 적용되는 하드웨어 제한 사항, 특히 Pascal의 HEVC 인코딩에 대해서는 이 답변 을 참조하십시오 .

FFmpeg가있는 현재 세대 NVIDIA 하드웨어에 사용 가능한 하드웨어 가속 인프라에 대해서는 답변을 참조하십시오 .

그런 다음 해당 정보를 사용하여 다음 단계로 진행하십시오.

3. 구문이 중요합니다 :

FFmpeg에 인수를 전달해야하는 순서는 다음과 같습니다.

(ㅏ). 바이너리를 불러옵니다.

(비). -loglevel입력을 선언하기 전에 모든 인수를 FFmpeg (예 : 직접)에 전달하십시오.

(씨). 와 같은 하드웨어 가속 디코딩을 사용하는 cuvid경우 여기에 선언하고 필요한 특정 인수를 포함하십시오. 이 시점에서 디코더에는 예상되는 입력 해상도, 지원되는 코덱 등과 같은 특정 제약 조건이 있으며 프로덕션 환경에서는 하드웨어 가속 디코더의 필요성을 장애로 결정하고 확인하는 것이 좋습니다. 이 단계에서는 인코딩이 실패하고 복구 할 수 없습니다. 실제로 MPV 개발자는 이것을 반복적으로 언급 했지만 미션 크리티컬 한 컨텐츠 전달을 위해 하드웨어 가속 디코딩에 의존하지 않습니다.

(디). 입력을 선언하십시오. 스트림의 경우 URL을 사용하고 필요한 경우 필요에 따라 추가 플래그 (예 : 버퍼 크기)를 추가하십시오. 로컬 리소스 (액세스 가능한 파일 시스템)의 경우 절대 파일 경로가 필요합니다.

(이자형). 선택적으로 필터를 삽입하십시오. 이것은 크기 조정, 픽셀 형식 대화, 디인터레이싱 등과 같은 기능에 필요합니다. 여기서 사용중인 필터에 따라 (c) 섹션에 설명 된 하드웨어 기반 디코더는 필터가 처리하지 않으면 인코딩이 실패합니다.

(에프). 해당 비디오 및 오디오 인코더를 불러, 그리고 그것을 비트 레이트에 관해서 등 매핑, 비트 레이트, 엔코더 프리셋으로 그들에게 필요한 인수를 통과, 원하는 값이로 설정되어 있는지 확인 -b:v, -maxrate:v-bufsize:v옵션을 제공합니다. 비워 두지 마십시오. 이것이 왜 이러한 가치들이 중요한지에 대한 좋은 출발점입니다. 항상 그렇듯이 사전 설정을 지정하여 시작하십시오. 이 특정 인코더로 프리셋의 성능 영향에 대한 메모를 보려면 아래로 스크롤하십시오.

(지). FFmpeg가 출력 파일의 선택된 확장자에 따라 파일의 필수 출력 형식을 추론 할 수있는 반면, 필요한 경우 추가 옵션을 기본 muxer에 전달할 수 있도록 -f 옵션을 통해 출력 형식을 명시 적으로 선언하는 것이 좋습니다. , HLS, mpegts 및 DASH와 같은 스트리밍 형식의 경우가 종종 있습니다.

(h). 출력 파일의 절대 경로입니다.

위의 예에서 다음과 같이 인용됩니다.

ffmpeg -i "e:\input.ts" -vcodec h264_nvenc -preset slow -level 4.1
       -qmin 10 -qmax 52 "e:\output.mp4"

사용자는 적절한 비트 레이트를 지정하여 출력 품질을 높이기 (관통 수 -b:v, -maxrate:v-bufsize:v설정) (하나만이 동시에 사용될 수있는 시공간 AQ 방법은 지원되는)의 적응 양자화 인코딩 기술을 가능하게하고 의해 임의적으로 (개별적으로) 가중 예측 활성화 (B- 프레임 지원 비활성화)와 필요한 경우 적절한 다운 스케일 및 크기 조정을위한 선택적 필터. 아래 예제는 mpeg2로 인코딩 된 mpegts 입력을 처리하는 스 니펫을 보여줍니다.

ffmpeg -loglevel debug -threads 4 -hwaccel cuvid -c:v mpeg2_cuvid -i "e:\input.ts" \
-filter:v hwupload_cuda,scale_npp=w=1920:h=1080:interp_algo=lanczos \
-c:v h264_nvenc -b:v 4M -maxrate:v 5M -bufsize:v 8M -profile:v main \
-level:v 4.1 -rc:v vbr_hq -rc-lookahead:v 32 \
-spatial_aq:v 1 -aq-strength:v 15 -coder:v cabac \
-f mp4 "e:\output.mp4"

경고 : 가중 예측 ( -weighted_pred)은 적응 양자화와 동시에 활성화 될 수 없습니다. 그렇게하면 엔코더 초기화 실패가 발생합니다.

위의 스 니펫은 입력 파일이 MPEG2 스트림이라고 가정합니다. 그렇지 않은 경우 분석 후 올바른 CUVID 디코더로 전환하십시오.

ffprobe -i e:\input.ts

'H.264 / AVC'인 경우 아래와 같이 스 니펫을 수정하십시오.

ffmpeg -loglevel debug -threads 4 -hwaccel cuvid -c:v h264_cuvid -i "e:\input.ts" \
-filter:v hwupload_cuda,scale_npp=w=1920:h=1080:interp_algo=lanczos \
-c:v h264_nvenc -b:v 4M -maxrate:v 5M -bufsize:v 8M -profile:v main \
-level:v 4.1 -rc:v vbr_hq -rc-lookahead:v 32 -spatial_aq:v 1 \
-aq-strength:v 15 -coder:v cabac \
-f mp4 "e:\output.mp4"

적응 형 양자화 또는 NVENC에 대한 가중 예측 옵션을 활성화하면 특히 특정 장치 드라이버 조합에서 안정성 문제가 발생할 수 있습니다. 가능한 경우 -refs:vAQ 및 가중 예측을 토글하는 대신 B- 프레임 (3 개 이하)을 일반 옵션 을 16으로 설정하거나 그와 관련하여 사용하는 것이 좋습니다.

ffmpeg -loglevel debug -threads 4 -hwaccel cuvid -c:v h264_cuvid -i "e:\input.ts" \
-filter:v hwupload_cuda,scale_npp=w=1920:h=1080:interp_algo=lanczos \
-c:v h264_nvenc -b:v 4M -maxrate:v 5M -bufsize:v 8M -profile:v main \
-level:v 4.1 -rc:v vbr_hq -rc-lookahead:v 32 -refs:v 16 \
-bf:v 3 -coder:v cabac \
-f mp4 "e:\output.mp4"

특히 Turing을 사용하면 아래와 같이 B 프레임을 참조 용으로 활성화 할 수 있습니다 (토글 참조 -b_ref_mode:v middle):

ffmpeg -loglevel debug -threads 4 -hwaccel cuvid -c:v h264_cuvid -i "e:\input.ts" \
-filter:v hwupload_cuda,scale_npp=w=1920:h=1080:interp_algo=lanczos \
-c:v h264_nvenc -b:v 4M -maxrate:v 5M -bufsize:v 8M -profile:v main \
-level:v 4.1 -rc:v vbr_hq -rc-lookahead:v 32 -refs:v 16 \
-bf:v 3 -coder:v cabac -b_ref_mode:v middle \
-f mp4 "e:\output.mp4"

스레드 수에 대한 추가 참고 사항 ( -threads옵션을 통해 ffmpeg로 전달 ) :

특정 임계 값을 초과하는 인코더 스레드가 많을수록 대기 시간이 길어지고 인코딩 메모리 풋 프린트가 높아집니다. 인코딩 지연이 증가하여 일정한 비트 전송률 모드와 VBV (비디오 버퍼 검증기)라고하는 거의 일정한 비트 전송률 모드에서 스레드 수가 많아 질수록 품질 저하가 더욱 두드러집니다. 키 프레임은 품질이 좋지 않은 키 프레임을 펄싱하지 않으려면 다른 프레임 유형보다 더 많은 데이터가 필요합니다.

지연 제로 또는 슬라이스 스레드 모드에는 지연이 없지만이 옵션은 지원되는 인코더에서 멀티 스레드 품질을 훨씬 떨어 뜨립니다.

따라서 지각 된 인코더 처리량 증가로 인해 장기적으로 가져올 수있는 모든 이점이 상쇄되므로 대기 시간이 중요한 인코딩의 스레드 수를 제한하는 것이 좋습니다.

그리고 Windows를 사용하고 있으므로 \위 명령을 테스트하는 Unix 상자에서이를 작성하면서 위 의 셸 이스케이프를 제거 할 수 있습니다 .

사전 설정 및 인터레이스 인코딩 고려 사항의 성능 영향에 대한 참고 사항 :

높은 처리량, 낮은 대기 시간 성능을 위해서는 하나 llhp또는 llhq사전 설정을 사용하고 있는지 확인하십시오 . 이는 다양한 장치와의 광범위한 호환성이 예상되는 라이브 스트리밍과 같은 워크로드에 가장 유용합니다. 따라서 B- 프레임과 같은 성능 크리핑 기능을 생략하여 더 높은 비트 전송률 사이의 균형을 유지할 수 있습니다. 사용 및 처리량. 더 높은 사전 설정 (예 : 기본값 medium)은 엔코더 처리 속도가 크게 느려지는 동시에 품질 출력의 수익빠르게 감소합니다 . 간의 품질 차이 llhpllhq측정 등의 넷플릭스의 VMAF 사실상 무시할 수는 있지만, 이전 테스트 엔코더에서 엔코더의 성능 향상 (내 테스트 베드에서 ~ 30 % 이상)은 확실히 알 수 있습니다.

들어 llhpllhq사용 사전 설정뿐만 아니라 다른 프리셋, 당신은 또한 전달하여 내장 속도 제어 방법을 대체 할 수 있습니다 -rc:v인코더 옵션에 의해 노출로 인수를. 예를 들어, 일정한 비트 전송률 인코딩을 사용 -rc:v cbr하면 cbr_ld_hq속도 제어 방법 보다 훨씬 빠르므로 처리량이 20 % 증가합니다. 참고 것을 선택한 사전 설정 처리량에 가장 큰 영향이 원하는 경우 선택적으로 대체 할 수 있습니다 (예 : 사용 속도 제어 방식 등) 사전 설정 옵션 다음을.

인코딩 워크 플로우를 고려하고 필요에 따라 조정하십시오. 마일리지는 소스 콘텐츠, 사용중인 필터 체인, 특정 pltform 구성 변수 (예 : GPU 및 드라이버 버전) 등에 따라 달라집니다.

같은 호흡에서 엔비디아는 이전 Volta NVENC 엔코더를 사용하는 1660Ti 라인에서도 모든 계층에 걸쳐 튜링 에서 인터레이스 인코딩을 명시 적으로 비활성화했습니다 . 인터레이스 인코딩 지원이 필요한 경우 대신 Pascal 또는 이전 SKU로 전환하십시오.


1
서사시! 오랫동안 하드웨어 인코딩 작업을 한 후에 CPU 인코딩보다 이것을 다시 시작 하시겠습니까? 아니면 품질 / 파일 크기의 단점이 여전히 큽니까? NVENC와 NVENC HQ에서 많은 개선이 이루어졌으며, 기본 x264에 비해 품질이 동일해야합니다
Dr. Snail

@ Dr.Snail 먼저 워크 플로 요구 사항을 판단하고 하드웨어 기반 인코딩 솔루션으로 전환하기 전에 모든 요소를 ​​고려하는 것이 좋습니다. 하나의 NVENC는 다른 SIP 기반 인코딩 솔루션과 마찬가지로 소프트웨어 기반 구현에 비해 높은 전력 효율에서 항상 더 빠른 성능을 제공하며 다른 모든 요소는 일정합니다. 이를 위해 예상대로 품질 균형을 맞추고 지원되지 않는 기능을 평가하십시오. 예를 들어 NVENC를 사용하면 HDR 정보를 직접 삽입 할 수 없으며 외부 도구를 사용해야합니다.
林正浩


scale_npp=w=1920:h=1080필터가 GPU에서 가장 큰 이점 중 하나이기 때문에 선택 하십니까? 비트 레이트를 제한하는 또 다른 것은 -b:v 1000k -minrate 500k -maxrate 3000k출력 크기를보다 예측 가능하게 만드는 것 같습니다.
Dr. Snail

예, @ Dr.Snail. 예측 가능한 파일 크기가 우선 순위입니다.
林正浩

3

nvenc 사용에 대한 나의 경험은 원하는 비트 전송률을 알려 주어야한다는 것입니다. 기본적으로 VBR로 설정되지만 괜찮습니다.하지만 2M 평균 비트 전송률을 항상 중요하게 생각하고 있다는 사실에 대해서는 아무런 조정도하지 않습니다. 어떤 해상도 파일을 제공합니까? 엔코더에 결함이있는 것 같습니다. 다른 모든 측면에서 예측 가능하게 수행되지만 (예를 들어) -b:v 4M720p 파일 또는 -b:v 8M1080p가 필요합니다. 원한다면 아마 조금 낮출 수도 있습니다.


1

오디오 용 Libvorbis는 느리게 보입니다. ac3는 속도가 15 % 이상 향상됩니다.

비디오 드라이버에 문제가 있거나 오래된 ffmpeg 사본을 사용하고 있습니다. ● 클립이 없지만 PVR에서 SD TS 파일을 가져 와서 설정을 사용했습니다.

GTX750 (비 TI)에서 700fps (내 설정)를 받았습니다

925fps (ac3 오디오 설정)

내가 할 수있는 다른 권장 사항은 다음과 같습니다.

qmax를 약 23으로 변경하십시오.


이 명령으로 400FPS로 찾은 오래된 GTX 760으로 이것을 테스트했습니다 ffmpeg40\bin\ffmpeg -hwaccel cuvid -c:v mpeg2_cuvid -i "E:\input.ts" -c:v h264_nvenc "E:\output.mp4". AC3 i.stack.imgur.com/CNaWM.png
Dr. Snail

이것은 명령 행에서 작동해야합니다. -c : v 옆에 추가하십시오. h264_nvenc -c : a ac3 2 개의 세션을 푸시 할 수도 있습니다. 두 번째 명령 줄을 열고 동시에 다른 .ts를 인코딩하십시오. 당신이 좋아하는 경우에 .ts 파일 중 하나를 테스트하여 속도와 품질을 향상시킬 수있는 다른 것이 있는지 알아볼 수 있습니다.
Don Giovanni
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.