Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 17009|Resposta: 4

Use o ffmpeg acelerado por GPU para processar tarefas no Windows

[Copiar link]
Postado em 2019-11-7 21:08:29 | | | |
FFMPEG Download

Página oficial de download:
O login do hiperlink está visível.
Recomenda-se baixar a versão compilada e baixar a página:
O login do hiperlink está visível.
Geralmente prefiro baixar a versão mais recente (nomeada pela data) e, claro, existe uma versão estável (nomeada pelo número da versão).



Baixar CUDA

CUDA é um driver que permite à GPU realizar operações relacionadas, porque desenvolvemos aplicações que não controlam diretamente a GPU, mas operam através do driver.
O login do hiperlink está visível.
Aqui escolho a versão mostrada abaixo:
Claro, você também pode clicar no link abaixo para ir direto às configurações quando fiz o download.
O login do hiperlink está visível.


Depois de baixar, lembre-se de instalar, então não vou apresentar, afinal, todos eles estão desenvolvendo software.

comando

Comandos de consulta
Verifique se o ffmpeg baixado suporta CUDA, se não suportar (eu baixei), então baixe novamente ou compile você mesmo.




Comandos de teste

Converta a 0.mp4 no diretório atual para 00.mp4
Converta o 0.mp4 no diretório atual para 00.mp4 e especifique a taxa de quadros de saída de 15 (-r 15) e a taxa de bits de 500k (-b 500k).
-hwaccel cuvid: Especifica o uso de aceleração por hardware cuvid
-c:v h264_cuvid: Decodificação de vídeo usando h264_cuvid
-c:v h264_nvenc: Codificação de vídeo com h264_nvenc
-vf scale_npp=1280:-1: Especifique a largura e a altura do vídeo de saída, note que isso é diferente da escala -vf=x:x usada para decodificação suave

Comandos múltiplos para placas de vídeo

Teste de eficiência de transcodificação de GPU
Em um servidor com dois processadores Intel-E5-2630v3 e duas placas de vídeo Nvidia Tesla M4, o teste de transcodificação de vídeo h264 foi realizado da seguinte forma:

Tempo médio de transcodificação da GPU: 8s
Tempo médio de transcodificação da CPU: 25s

Quando a transcodificação é feita em paralelo, a eficiência da conversão soft da CPU é melhorada, e todos os 32 núcleos ficam ocupados quando as três tarefas de transcodificação são paralelas

Tempo médio de transcodificação da GPU: 8s
Tempo médio de transcodificação da CPU: 18s

Não é difícil perceber que a velocidade de transcodificação da GPU não aumenta quando paralela, o que mostra que a GPU só pode realizar uma tarefa de transcodificação ao mesmo tempo. Então, se várias placas de vídeo forem inseridas no servidor, o ffmpeg vai usar múltiplas GPUs para transcodificação paralela?
Infelizmente, a resposta é não.
O ffmpeg não tem a capacidade de atribuir automaticamente tarefas de transcodificação para diferentes GPUs, mas após alguma investigação, descobriu-se que a GPU usada para a tarefa de transcodificação pode ser especificada pelo parâmetro -hwaccel_device!
Submeter tarefas de transcodificação para diferentes GPUs

Gráficos 0


Placa de vídeo1

Ilustrar:

-hwaccel_device N: Especifique uma GPU para realizar uma tarefa de transcodificação, N é um número





Anterior:[Combate prático] Crie uma imagem Docker baseada no Nginx
Próximo:Protótipos do logo de 2000
 Senhorio| Postado em 2019-11-7 21:18:35 |
//参数说明
/*
    * -i nome do arquivo (entrada) diretório de arquivo de origem
    * -y Produz novos arquivos, se deve forçar a sobreposição de arquivos existentes
    * -c Especifica o codificador
    * -fs limit_size(outinput) define o limite do tamanho do arquivo, expresso em bytes. Nenhum bloco de bytes adicional é escrito após o limite ser ultrapassado. O tamanho do arquivo de saída é ligeiramente maior que o tamanho solicitado.
    * -s Relação de vídeo 4:3 320x240/640x480/800x600 16:9 1280x720, valor padrão 'wxh', igual ao tamanho original do vídeo
    * -vframes number (saída) define o número de quadros de vídeo para a saída. Alias: -frames:v
    * -d número de quadros (saída) define o número de quadros de dados para a saída. Alias: -frames:d
    * -frames[:stream_specifier] framecount(output, per-stream) para de gravar no fluxo pelo número de frames.
    * -bsf[:stream_specifier] bitstream_filters (saída, por fluxo) especifica o formato do fluxo de arquivo de saída,
Por exemplo, saia um arquivo MP4 codificado por h264: ffmpeg -i h264.mp4 -c:v copy -bsf:v h264_mp4toannexb -an out.h264
    * -r 29,97 taxa Zhen (pode ser alterada, certifique-se de que a taxa Zhen não padrão fará com que som e imagem fiquem fora de sincronia, então só pode ser ajustada para 15 ou 29,97)
    *
    */
 Senhorio| Postado em 2019-11-8 15:07:05 |
ffmpeg.exe -hwaccel_device 1 -hwaccel cuvid -i C:\Users\DELL\Desktop\VideoDemo\VideoDemo\VideoDemo\bin\A14.mp4 -y C:\Users\DELL\Desktop\VideoDemo\VideoDemo\bin\Debug\A16.avi

https://blog.csdn.net/Tosonw/article/details/90178195


NVCC --Versão

CUVID é uma biblioteca de decodificação de vídeo baseada em CUDA que utiliza CUVID para decodificação


Falhou na criação do dispositivo Direct3D
Falha na criação do dispositivo: -1313558101.

A versão ffmpeg deve corresponder ao driver da placa de vídeo síncrona para permitir a aceleração por hardware corretamente.


Confira o codec de aceleração de hardware da NVIDIA:

.\ffmpeg.exe -codecs | SLS NVENC
.\ffmpeg.exe -codecs | SLS Cuvid

O prefixo tem os seguintes significados:

Significado do prefixo
D….. = Decodificação suportada
. E.... = Codificação suportada
.. V... = Codec de vídeo
.. A... = Codec de áudio
.. S... = Codec de legendas
… Eu.. = Codec intra apenas quadro
....L. = Compressão com perdas
….. S = Compressão sem perdas



ffmpeg.exe -hwaccel_device 1 -hwaccel cuvid -c:v h264_cuvid -i C:\Users\DELL\Desktop\VideoDemo\VideoDemo\bin\Debug\A14.mp4 -c:v h264_nvenc -y C:\Users\DELL\Desktop\VideoDemo\ VideoDemo\bin\Debug\A16.avi

ffmpeg.exe -hwaccel cuvid -c:v h264_cuvid -i C:\Users\DELL\Desktop\VideoDemo\VideoDemo\bin\Debug\A14.mp4 -c:v h264_nvenc -y C:\Users\DELL\Desktop\VideoDemo\VideoDemo\bin\Debug\ A16.avi


https://developer.nvidia.com/ffmpeg
Postado em 26-02-2023 12:11:24 |
Rápido:Autores são banidos ou o conteúdo removido é automaticamente bloqueado
Postado em 26-02-2023 12:13:35 |
Rápido:Autores são banidos ou o conteúdo removido é automaticamente bloqueado
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com