Melhores configurações para FFMpeg com NVENC


25

Estou usando meu FFMPEG com o suporte da minha GPU ( NVENC ) para converter arquivos do meu receptor de satélite (SD, mpeg2 .TS-Files) em h264 .mp4-files

Aqui está a linha que estou usando

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

Mas a qualidade não é tão boa quanto o esperado. E a potência total do meu sistema não é usada:

insira a descrição da imagem aqui

Apenas 11% de GPU e 30% de uso da CPU.

Pergunta: Existem algumas melhorias que posso fazer para melhorar a qualidade com o mesmo tamanho de arquivo e usar mais poder de cálculo da minha Geforce GTX 1080?

Encontrei alguns parâmetros de 林正浩 para alterar, mas -preset slowjá deve ser a melhor abordagem de qualidade, certo?

Respostas:


36

Aqui está um guia aproximado para ajustar o codificador:

Começaremos do básico, pois seria prejudicial concluir que uma rápida enxurrada de opções melhorará repentinamente a produção esperada sem entender os objetivos e expectativas desejados:

1. Comece entendendo as opções do codificador.

Para codificadores baseados em NVENC, comece aprendendo as opções que cada codificador utiliza (observe que estou no Linux, é por isso que estou usando o xclip para copiar as opções de codec para a área de transferência antes de colá-las aqui):

(uma). Para o codificador H.264:

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

Resultado:

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.... 

b) Para o codificador HEVC / H.265:

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

Resultado:

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. Entenda as limitações do hardware e atenha-se aos padrões saudáveis ​​antes de aplicar as opções:

Consulte esta resposta para obter as limitações de hardware que você encontrará com o NVENC, especialmente para codificações HEVC no Pascal.

Para a infraestrutura acelerada por hardware disponível para o hardware NVIDIA da geração atual com FFmpeg, consulte esta resposta.

Em seguida, usando essas informações, prossiga para a próxima etapa.

3. A sintaxe é crítica:

Aqui está a ordem em que você deve passar argumentos para o FFmpeg:

(uma). Chame o binário.

b) Passe quaisquer argumentos para o FFmpeg (como -logleveldiretamente) antes de declarar entradas.

(c) Se você estiver usando qualquer decodificação acelerada por hardware, como cuvid, declare-a aqui e inclua os argumentos específicos que forem necessários. Nesse ponto, seria imperativo mencionar que os decodificadores têm restrições específicas, como resoluções de entrada esperadas, codecs suportados, etc. nesse estágio resulta em falha na codificação e é irrecuperável. De fato, os desenvolvedores de MPV mencionaram isso repetidamente , não confie na decodificação acelerada por hardware para entrega de conteúdo de missão crítica.

d) Declare suas entradas. Para fluxos, use a URL e, se necessário, acrescente sinalizadores extras (como tamanhos de buffer) conforme necessário. Para recursos locais (em um sistema de arquivos acessível), o caminho absoluto do arquivo é necessário.

(e) Opcionalmente, insira um filtro. Isso é necessário para funções como redimensionamento, conversas no formato de pixel, desentrelaçamento, etc. Observe que, dependendo do filtro em uso aqui, um decodificador baseado em hardware (conforme descrito na seção (c) apresentará restrições que seu filtro deve ser capaz de lidar, ou então sua codificação falhará.

f) Acesse os codificadores de vídeo e áudio apropriados e transmita os argumentos necessários, como mapeamentos, taxas de bits, predefinições de codificadores, etc. Quando se trata de taxas de bits, verifique se os valores desejados estão definidos por meio de -b:v,-maxrate:v e -bufsize:vopções. Não os deixe em branco. Este é um bom ponto de partida para a importância desses valores. Como sempre, comece especificando uma predefinição. Role para baixo até ver notas sobre o impacto no desempenho das predefinições com este codificador específico.

g) Enquanto o FFmpeg pode deduzir o formato de saída necessário de um arquivo, dependendo da extensão selecionada do arquivo de saída, é recomendável declarar explicitamente o formato de saída (através da opção -f) para que opções extras possam ser passadas ao muxer subjacente, se necessário , como geralmente acontece com formatos de streaming como HLS, mpegts e DASH.

(h) O caminho absoluto para o arquivo de saída.

Com o seu exemplo acima, citado como:

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

É possível aumentar a qualidade de saída, indicando taxas de bits apropriados (através do -b:v, -maxrate:ve -bufsize:vconfigurações), permitindo que as técnicas de quantização de codificação adaptativas (métodos AQ espaciais e temporais são suportados, das quais apenas um pode ser usado de cada vez) e por, opcionalmente, (e separadamente) ativar a previsão ponderada (que desativará o suporte ao quadro B), como mostrado abaixo, bem como um filtro opcional para uma redução de escala adequada e redimensionar, se necessário. O exemplo abaixo mostra um snippet que manipula a entrada mpegts codificada em mpeg2:

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"

Aviso: Observe que a previsão ponderada ( -weighted_pred) não pode ser ativada ao mesmo tempo que a quantização adaptativa. Tentar fazer isso resultará em falha na inicialização do codificador.

O trecho acima pressupõe que o arquivo de entrada seja um fluxo MPEG2. Se não for esse o caso, alterne para o decodificador CUVID correto depois de analisá-lo:

ffprobe -i e:\input.ts

Se for 'H.264 / AVC, modifique o trecho conforme mostrado abaixo:

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"

Percebi que ativar opções de quantização adaptativa OU de predição ponderada para NVENC pode apresentar problemas de estabilidade, principalmente com combinações específicas de drivers de dispositivo. Sempre que possível, considere usar quadros B (não mais que 3) combinados com a opção genérica -refs:vdefinida como 16 ou aproximadamente, em vez de alternar no AQ e na previsão ponderada:

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"

Com o Turing , em particular, você também pode se beneficiar da habilitação de quadros B para referência, como mostrado abaixo (consulte a alternância -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"

Uma observação extra sobre as contagens de threads (transmitidas ao ffmpeg através da -threadsopção):

Mais encadeamentos de codificador além de um determinado limite aumentam a latência e terão uma maior pegada na memória de codificação. A degradação da qualidade é mais proeminente com contagens mais altas de threads nos modos de taxa de bits constante e no modo de taxa de bits quase constante chamado VBV (verificador de buffer de vídeo), devido ao maior atraso na codificação. Os quadros-chave precisam de mais dados do que outros tipos de quadros para evitar pulsar quadros-chave de baixa qualidade.

O atraso de zero ou o modo de segmento fatiado não possui atraso, mas essa opção piora ainda mais a qualidade de vários segmentos nos codificadores suportados.

Portanto, é aconselhável limitar a contagem de encadeamentos nos códigos em que a latência é importante, pois a taxa de transferência percebida do codificador aumenta as vantagens que ele pode trazer a longo prazo.

E, como você está no Windows, remova os escapes do shell \ acima, enquanto escrevo isso em uma caixa Unix testando o comando acima.

Notas sobre o impacto no desempenho com predefinições e considerações sobre codificação entrelaçada:

Para alta taxa de transferência, desempenho de baixa latência, verifique se você está usando uma llhpou mais llhqpredefinições. Isso é mais útil para cargas de trabalho, como transmissão ao vivo, em que é esperada uma compatibilidade mais ampla com uma variedade maior de dispositivos e, como tal, recursos prejudiciais ao desempenho, como quadros B, podem ser totalmente omitidos para uma boa troca entre taxas de bits mais altas. uso e taxa de transferência. Predefinições mais altas (como o padrão medium) têm retornos rapidamente decrescentes na saída de qualidade e, ao mesmo tempo, incorrem em lentidão significativa na taxa de transferência do codificador. A diferença de qualidade entre llhpe llhqconforme medida pelo VMAF da Netflix é praticamente insignificante, mas o aumento no desempenho do codificador (acima de 30% na minha bancada de testes) com o primeiro é definitivamente apreciável.

Para as predefinições llhpe llhq, bem como outras predefinições em uso, você também pode substituir os métodos de controle de taxa incorporados passando os -rc:vargumentos conforme expostos pelas opções do codificador. Por exemplo, com a codificação constante da taxa de bits, você pode especificar -rc:v cbr(o que é significativamente mais rápido que o cbr_ld_hqmétodo de controle de taxa, trazendo um aumento adicional de ~ 20% na taxa de transferência). Observe que a predefinição selecionada tem o maior impacto na taxa de transferência , seguida pelas opções predefinidas (como o método de controle de taxa em uso) que você pode opcionalmente substituir, se desejar.

Considere o seu fluxo de trabalho de codificação e ajuste conforme necessário. Sua milhagem definitivamente variará, com base no conteúdo de origem, nas cadeias de filtros em uso, nas variáveis ​​específicas da configuração da plataforma (como as versões de GPU e driver), etc.

No mesmo instante, observe que a NVIDIA desabilitou explicitamente a codificação entrelaçada em Turing em todas as camadas, mesmo na linha 1660Ti que usa o codificador Volta NVENC mais antigo. Se você precisar de suporte para codificação entrelaçada, alterne para Pascal ou SKUs mais antigos.


1
Épico! Obrigado, depois de trabalhar com a codificação de hardware por tanto tempo, você recomendaria isso sobre a codificação da CPU ou as desvantagens da qualidade / tamanho do arquivo ainda são tão grandes? Quero dizer que há muitas melhorias que foram feitas no NVENC e NVENC HQ deve ser igual qualidade em comparação com x264 padrão
Dr. Snail

@ Dr.Snail Eu recomendo avaliar primeiro os requisitos do seu fluxo de trabalho e levar em consideração todos os fatores antes de mudar para uma solução de codificação baseada em hardware. Por um lado, o NVENC, como outras soluções de codificação baseadas em SIP, sempre produzirá desempenho drasticamente mais rápido com maior eficiência de energia em relação a uma implementação baseada em software, todos os outros fatores constantes. Para isso, aplique uma velocidade na troca de qualidade conforme o esperado e pese nos recursos não suportados. Por exemplo, com o NVENC, não podemos inserir informações HDR diretamente e precisamos usar uma ferramenta externa para isso.
林正浩


Você escolhe scale_npp=w=1920:h=1080porque os filtros são algo que mais se beneficia da GPU, certo? Outra coisa, limitar a taxa de bits -b:v 1000k -minrate 500k -maxrate 3000kparece tornar o tamanho da saída mais previsível
Dr. Snail

Sim, @ Dr.Snail. Tamanhos de arquivo previsíveis são uma prioridade.
林正浩

3

Minha experiência com o uso do nvenc é que você precisa dizer qual taxa de bits deseja - o padrão é VBR, o que é bom, mas nenhuma quantidade de ajuste compensa o fato de que ele sempre quer fornecer uma taxa de bits média de 2 milhões, independentemente qual arquivo de resolução você alimenta. Parece uma falha no codificador; ele tem um desempenho previsível em todos os outros aspectos, mas precisa (por exemplo) -b:v 4Mde um arquivo 720p ou -b:v 8M1080p. Você provavelmente poderia diminuir um pouco se quiser também.


1

Libvorbis para áudio parece lento. O ac3 deve aumentar em 15% a velocidade.

Dito isto, algo está errado com o seu driver de vídeo ou você está usando uma cópia antiga do ffmpeg. q Não tenho o seu clipe, mas peguei um arquivo SD ts do meu PVR e usei as suas configurações.

Eu tenho 700fps (Suas configurações) em uma GTX750 (não TI) (a mais barata)

Eu tenho 925fps (Suas configurações com áudio ac3)

A outra recomendação que posso fazer é:

Mude o seu qmax para cerca de 23.


Eu testei isso com uma GTX velho 760 que eu encontrei com 400fps com este comando ffmpeg40\bin\ffmpeg -hwaccel cuvid -c:v mpeg2_cuvid -i "E:\input.ts" -c:v h264_nvenc "E:\output.mp4"você poderia adicionar seu código com o AC3 i.stack.imgur.com/CNaWM.png
Dr. Snail

Isso deve funcionar na sua linha de comando. Adicione-o ao lado de -c: v h264_nvenc -c: a ac3 Você também deve poder enviar 2 sessões. Abra uma segunda linha de comando e codifique outro .ts ao mesmo tempo. Se você, como eu "ficaria feliz em um teste de seus arquivos .TS para ver se há alguma coisa que pode ser feito para estimular a sua velocidade e qualidade.
Don Giovanni
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.