▲ 2 r/ffmpeg

How do I correctly select the GPU ID for the `-init_hw_device vulkan=vk:` parameter?

Hello everyone. I am running FFmpeg on a system with three GPUs: an Intel iGPU, an RX 6400, and an RTX 3060. Here is my FFmpeg command line:

[ argumentosString ] -init_hw_device vulkan=vk:0 -filter_hw_device vk -v repeat+error -i "D:\OBS\record\teste.mp4" -vf "hwupload,libplacebo=w=1920:h=1080:colorspace=bt709:color_primaries=bt709:color_trc=bt709:range=limited:custom_shader_path='D\:/upscale/shaders/shader.glsl',hwdownload,format=yuv420p" -fps_mode passthrough -c:v h264_amf -rc cqp -qp_i 19 -qp_p 21 -tag:v avc1 -c:a copy -y -gpu 0 "D:\OBS\record\teste_process.mp4"

The `-gpu` parameter specifies which GPU to use for encoding, while the `-init_hw_device vulkan=vk:0` parameter specifies which GPU runs the shader. To my surprise, when using the value `0` for both parameters, I discovered that this value does not point to the same GPU; I see a scenario where the shader runs on the RX 6400 while the encoding takes place on the RTX 3060. This happens because the GPU ordering differs for each of these parameters.

Can anyone help me?

reddit.com
u/Few_Profit5031 — 9 hours ago
▲ 0 r/vulkan

CommandUP (cup): Pipeline leve de pós-processamento de vídeo para upscale e frame interpolate utilizando a API Vulkan, libplacebo e FSR 1.0 para GPUs antigas/legadas

Hey r/vulkan folks!

I want to share a project I’ve been developing called CommandUP (cup). It’s an open-source, modular, and portable pipeline for post-processing, upscaling, and frame interpolation. Its key advantage is delivering these modern features without the overhead or dependency on AI-based models or Tensor cores—meaning it's designed for legacy PCs!

Graphics cards like the RX 550/580 or GTX 750 Ti/1050/1080—which struggle with AI upscaling—can run FSR via Vulkan and achieve great video results!

The ecosystem works natively via scripts (.NET/PowerShell), seamlessly integrating four layers:

  • FFmpeg Core: The engine! Vulkan API via libplacebo: Compiles the shader for the GPU. FidelityFX FSR (v1.0.2): GLSL-based shader (based on agyild's port). IFS (Interpolated Fluid Sampling): Frame interpolation via libplacebo. Integration scripts (** .NET/PowerShell**).

There’s a YouTube link to a video I recorded in 1080p; I upscaled it to 2K and created a 240p proxy for editing—all using the cup pipeline. https://youtu.be/MOQoBve-A8o

I recently created a community to centralize before/after tests, code discussions, and updates: r/CommandUP. It’s been a pleasure sharing the CommandUP Pipeline with you all.

u/Few_Profit5031 — 15 days ago

Como o CommandUP (Evolução oficial do FSRIFS) inspirado no incrível lossless scaling salvou meu clipe de Pragmata (De 720p para 2K!)

Fala, pessoal! Há um tempo, postei aqui sobre o FSRIFS (a pipeline autônoma de upscale offline) e o feedback de vocês foi incrível. Hoje quero trazer o modelo final e amadurecido do projeto, que agora se chama CommandUP (cup) — antigo FSRIFS — que nasceu de uma frustração minha com o meu hardware antigo e os modelos atuais de upscaling.

Há um tempo, eu escrevi a letra e fiz um arranjo no teclado para uma música autoral que submeti ao suno para o jogo Pragmata. Para o clipe, decidi colocar ao fundo dois trailers oficiais. O problema? Na época, o meu PC só aguentava gravar e renderizar o vídeo final em 720p a 30 FPS. Eu editei em 1080p apenas esticando o video com filtros comuns e postei no YouTube. Resultado? O visual ficou horrível — pixelado, sem nitidez e travado. Tive que usar um filtro de bloom para esconder um pouco a falta de resolução.

Oxygen and Hug no Youtube, versão SEM a cup pipeline:
https://youtu.be/BnmzSExHuyI

Essa limitação física me incomodou tanto que foi um dos grandes combustíveis para eu desenvolver a nossa pipeline minimalista. Eu acompanhei meu sobrinho postando videos de suas gameplays em que ele fazia upscale de varios jogos com a RTX dele. Eu não aceitava o fato de que para fazer upscale era necessário uma computador super potente a ponto de rodar IA.

Nesse meio tempo conheci o Lossless Scaling (que não precisa de apresentações né) e vi meu FX 6300 com uma RX 550 ganhar vida novamente em gameplays, tanto com o upscale em FSR em tempo real quanto com a geração de frames. Então pensei:

"Se o meu PC consegue fazer upscale em tempo real usando FSR dentro de um jogo, imagine o que ele faria processando um arquivo de vídeo offline em modo autônomo (standalone)?"

Foi o gatilho para eu idealizar a pipeline e então encontrei em pesquisas um port do fonte do FidelityFX FSR portado para shader Vulkan por agyild, que veio a combar com a idéia.

Nasceu assim então o FSRIFS a pipeline que usa um ecosistema em 4 pilares: FFmpeg (Motor), libplacebo (vulkan e interpolação), AMD FidelityFX FSR, meus scripts de integração em Powershell usando .NET.

Um dos testes que eu submeti a cup pipeline foi a de refazer o video da minha música do Pragmata, com um pouco de esforço e configurações eu gravei o video em 1080p/60fps e fiz upscale para 2K. Precisava editar esse video no Shotcut, mas meu pczinho sofre demais com o video em 2K, então eu usei a propria cup pipeline para gerar um proxy levíssimo de 360x240, isso me ajudou demais a conseguir editar o vídeo com velocidade.

Oxygen and Hug no Youtube, versão COM a cup pipeline:
https://youtu.be/MOQoBve-A8o

TELEMETRIA: hardware legado aguenta pós-processamento de vídeo pesado sem IA! Fiz questão de registrar os dados do Gerenciador de Tarefas e do terminal durante a renderização dos dois clipes de vídeos de 1080p para 2K:

https://preview.redd.it/rvt24t1nsdhh1.png?width=871&format=png&auto=webp&s=28261f0bd79e94dd28a0fd80e4d86fac50d14918

https://preview.redd.it/3k0g37unsdhh1.png?width=969&format=png&auto=webp&s=28e4bcc4579f6ffea99f32b6a140e6ebb4a4a0e6

Obrigado a todos que testaram a era beta da pipeline com o nome FSRIFS que agora se chama CommandUP em seu modelo final e obrigado também a toda a equipe do lossless scaling que inspirou esse projeto!

Gostou do projeto e quer acompanhar a pipeline?
Se você também tem um PC fraco, quer tirar dúvidas sobre os scripts, quer aprender a usar ou compartilhar os seus próprios testes de antes e depois, junte-se à nossa comunidade oficial aqui no Reddit: r/CommandUP!

Todo o suporte, atualizações do GitHub e discussões sobre o ecossistema acontecem por lá. Bora deixar essas gameplays lindas com upscale!

reddit.com
u/Few_Profit5031 — 17 days ago
▲ 111 r/handbrake+2 crossposts

I created a pipeline that functions like Lossless Scaling but acts as an asynchronous post-processing tool for pre-recorded game footage from PCs with more modest specifications.

Hello everyone!

If you have an older or low-end PC, you know how hard it is to run a demanding game and record gameplay simultaneously. The hardware simply can't handle the performance overhead.

On my test machine (an old AMD FX-6300 from 2012 and a 4GB Radeon RX 550 from 2017), I decided to change my strategy. Instead of sacrificing frame rate by trying to record at high resolution, I capture smooth gameplay at 720p/30fps using Ultra settings. Then, I run the file through a post-processing pipeline I created called FSRIFS.

The core concept is just like Lossless Scaling, but instead of real-time injection, it functions as an asynchronous post-processing tool for pre-recorded video files. The system takes your raw 720p/30fps footage and upscales it into a super-smooth 1080p/60fps (or even 4K) file using purely mathematical shader instructions running directly on the GPU silicon—without heavy AI or Tensor Cores.

The stack combines a few lightweight open-source tools:

• FFmpeg + libplacebo: Handles backend decoding, scaling container logic, and final rendering.

• AMD FidelityFX FSR 1.0: Provides spatial upscaling natively on the GPU.

• ​​Custom IFS (Intersection Fluid Sharpen) shader: A temporal shader I wrote using mathematical intersection logic—inspired by vector graphics—to generate the missing intermediate frames (30fps -> 60fps).

Performance on my old FX-6300 is incredibly efficient. CPU usage remains locked at around 45% during execution (without any OS lag), and rendering speed reaches 2.0x—meaning it processes a video in half its actual runtime for a 1080p/60fps output resolution.

Operation is extremely simple. I’ve included an automated drag-and-drop method where you simply define your target resolutions in a plain text file (DRAG_CONFIG.txt) and drag-and-drop your video file onto a .bat file. Advanced command-line parameters can also be executed directly via PowerShell.

Hardware limitations and requirements:

It works on any older dedicated GPU or integrated graphics chip (such as newer Vega or Intel HD architectures) that offers native Vulkan API support and has at least 2 GB of VRAM. Since the spatial and temporal filters were modeled around digital polygonal structures, it is intended strictly for video game graphics (real-life camera footage will break the mathematical logic).

Additionally, much like Lossless Scaling in real-time gaming, if you pause the processed video during a very sudden camera pan, you will see some ghosting artifacts in that specific synthetic frame. This is the technical trade-off made to keep the math lightweight enough to run on older hardware.

The project is 100% free and open-source (MIT license for the custom shader). If you’d like to test it on your low-end machine or check out the YouTube demo playlist to see the video quality results, leave a comment below, and I’ll be happy to share the links to the GitHub repository and the channel!

u/Few_Profit5031 — 1 month ago

Meu PC é um FX-6300 com uma RX 550 e usei um sistema para fazer Upscale e Frame Gen em vídeos de gameplay igual ao Lossless Scaling, mas sem pesar nada e rodou no meu video pré gravado.

Fala, pessoal! Beleza?

Quem tem PC guerreiro sabe o drama que é tentar rodar um jogo pesado e gravar a gameplay ao mesmo tempo. O computador simplesmente não aguenta.

Para resolver isso no meu PC (um AMD FX-6300 de 2012 e uma Radeon RX 550 de 4GB de 2017), eu mudei a estratégia: em vez de tentar gravar em alta resolução, eu gravo o jogo liso no Ultra em 720p a 30fps. Depois, eu passo o arquivo de vídeo por uma ferramenta chamada FSRIFS.

A lógica aqui é exatamente a mesma do Lossless Scaling dos jogos, só que aplicada para arquivos de vídeo já gravados: o sistema pega o vídeo bruto de 720p/30fps e transforma em um arquivo final super fluido de 1080p/60fps (ou até 4K) usando puro processamento matemático direto na placa de vídeo, sem usar nenhuma IA pesada.

O sistema roda direto por uma pipeline em PowerShell e Batch combinando tecnologias leves:

  • FFmpeg + libplacebo: Abrem, tratam e geram o arquivo de vídeo final.
  • AMD FidelityFX FSR 1.0: Faz o upscale espacial (aumenta o tamanho da imagem de 720p para 1080p ou mais) rodando direto na GPU.
  • Shader de Interpolação: Um algoritmo temporal super leve baseado em lógica matemática de programas vetoriais que cria os quadros extras para dar o efeito de fluidez (30fps -> 60fps).

O resultado no meu FX-6300 foi animal: o uso de CPU fica cravado em só 45% durante a renderização (o Windows nem engasga) e ele processa o vídeo na metade do tempo total dele (taxa de 2.0x).

Para usar é ridículo de fácil: tem um modo "Drag & Drop" onde você só ajusta a resolução em um bloco de notas (DRAG_CONFIG.txt) e arrasta o seu vídeo para cima de um arquivo .bat. Ele faz todo o processo sozinho. Para quem curte terminal, também dá para rodar os comandos direto no PowerShell.

Requisitos e limites:
Só precisa de uma placa de vídeo antiga de pelo menos 2GB ou um chip integrado (Vega ou Intel HD mais recentes) que tenha suporte nativo à API Vulkan. Como o algoritmo foi desenhado para gráficos digitais, ele funciona estritamente com gameplays (se colocar filme real a lógica quebra). E igualzinho acontece no Lossless Scaling dos jogos, se você pausar o vídeo em uma cena muito rápida vai notar um pequeno borrão (ghosting), que é o preço que pagamos para a matemática ser leve e rodar em PC fraco.

O projeto é 100% gratuito e o código é totalmente aberto. Se alguém tiver interesse em testar no seu PC ou quiser dar uma olhada na playlist de vídeos que eu já processei com ele para ver como fica a qualidade, deixa um salve nos comentários que eu respondo mandando os links do GitHub e do YouTube!

reddit.com
u/Few_Profit5031 — 1 month ago

Meu PC é um FX-6300 com uma RX 550 e usei um sistema para fazer Upscale e Frame Gen em vídeos de gameplay igual ao Lossless Scaling, mas sem pesar nada e rodou no meu video pré gravado.

Fala, pessoal! Beleza?

Quem tem PC guerreiro sabe o drama que é tentar rodar um jogo pesado e gravar a gameplay ao mesmo tempo. O computador simplesmente não aguenta.

Para resolver isso no meu PC (um AMD FX-6300 de 2012 e uma Radeon RX 550 de 4GB de 2017), eu mudei a estratégia: em vez de tentar gravar em alta resolução, eu gravo o jogo liso no Ultra em 720p a 30fps. Depois, eu passo o arquivo de vídeo por uma ferramenta chamada FSRIFS.

A lógica aqui é exatamente a mesma do Lossless Scaling dos jogos, só que aplicada para arquivos de vídeo já gravados: o sistema pega o vídeo bruto de 720p/30fps e transforma em um arquivo final super fluido de 1080p/60fps (ou até 4K) usando puro processamento matemático direto na placa de vídeo, sem usar nenhuma IA pesada.

O sistema roda direto por uma pipeline em PowerShell e Batch combinando tecnologias leves:

  • FFmpeg + libplacebo: Abrem, tratam e geram o arquivo de vídeo final.
  • AMD FidelityFX FSR 1.0: Faz o upscale espacial (aumenta o tamanho da imagem de 720p para 1080p ou mais) rodando direto na GPU.
  • Shader de Interpolação: Um algoritmo temporal super leve baseado em lógica matemática de programas vetoriais que cria os quadros extras para dar o efeito de fluidez (30fps -> 60fps).

O resultado no meu FX-6300 foi animal: o uso de CPU fica cravado em só 45% durante a renderização (o Windows nem engasga) e ele processa o vídeo na metade do tempo total dele (taxa de 2.0x).

Para usar é ridículo de fácil: tem um modo "Drag & Drop" onde você só ajusta a resolução em um bloco de notas (DRAG_CONFIG.txt) e arrasta o seu vídeo para cima de um arquivo .bat. Ele faz todo o processo sozinho. Para quem curte terminal, também dá para rodar os comandos direto no PowerShell.

Requisitos e limites:
Só precisa de uma placa de vídeo antiga de pelo menos 2GB ou um chip integrado (Vega ou Intel HD mais recentes) que tenha suporte nativo à API Vulkan. Como o algoritmo foi desenhado para gráficos digitais, ele funciona estritamente com gameplays (se colocar filme real a lógica quebra). E igualzinho acontece no Lossless Scaling dos jogos, se você pausar o vídeo em uma cena muito rápida vai notar um pequeno borrão (ghosting), que é o preço que pagamos para a matemática ser leve e rodar em PC fraco.

O projeto é 100% gratuito e o código é totalmente aberto. Se alguém tiver interesse em testar no seu PC ou quiser dar uma olhada na playlist de vídeos que eu já processei com ele para ver como fica a qualidade, deixa um salve nos comentários que eu respondo mandando os links do GitHub e do YouTube!

reddit.com
u/Few_Profit5031 — 1 month ago

Meu PC é um FX-6300 com uma RX 550 e usei um sistema nativo em Vulkan para fazer Upscale de gameplay de 720p para 1080p/60fps sem usar IA e com FSR

Fala, pessoal! Beleza?

Quem tem PC guerreiro/antigo sabe o drama: se você tenta rodar um jogo pesado e gravar a gameplay ao mesmo tempo em alta resolução, o computador chora.

Meu PC tem um AMD FX-6300 (2012) e uma Radeon RX 550 de 4GB (2017). Para conseguir criar conteúdo com qualidade decente sem derreter as peças, mudei a lógica do processo: em vez de sofrer tentando gravar em alta resolução enquanto jogo, passei a gravar o jogo de forma tranquila no Ultra em 720p a 30fps. Depois, rodo um script que faz o pós-processamento do arquivo de vídeo usando puro silício da placa de vídeo.

Para resolver isso, usei uma pipeline em PowerShell e Batch chamada FSRIFS, que junta ferramentas open-source de um jeito diferente:

  • FFmpeg + libplacebo: Gerenciam e geram o vídeo.
  • AMD FidelityFX FSR 1.0: Faz o upscale espacial (aumenta a resolução de 720p para 1080p ou 4K) rodando direto na GPU, sem usar IA pesada.
  • Shader de Interpolação: Usa um algoritmo temporal bem leve para gerar os quadros extras (30fps -> 60fps), usando lógica matemática baseada em intersecção de programas vetoriais.

O resultado no FX-6300 ficou excelente. O uso de CPU fica cravado na casa dos 45% (o Windows nem engasga) e o processo entrega taxas de renderização de até 2.0x (faz o upscale na metade do tempo do vídeo).

O sistema tem dois modos de uso: um fácil de arrastar o vídeo para cima de um arquivo .bat (que lê as configs de resolução de um bloco de notas) e outro direto pelo PowerShell para quem curte terminal.

Requisitos e limitações:
Funciona em qualquer placa de vídeo antiga de 2GB+ ou integrada (Vega/Intel HD) que tenha suporte nativo a Vulkan. O único "pulo do gato" é que o algoritmo foi desenhado estritamente para gráficos digitais (gameplays) — se tentar passar filme real, a lógica quebra. E se você pausar o vídeo em cenas rápidas, vai ver um borrão (ghosting), que é o preço que se paga pela matemática leve para não exigir placas caras com núcleos Tensor.

Como o projeto é 100% open-source e focado em ajudar quem tem hardware modesto, o código é liberado. Quem tiver interesse em testar ou dar uma olhada em como os vídeos ficam na prática, me avisa aqui nos comentários que eu passo o link do GitHub e da playlist de testes!

reddit.com
u/Few_Profit5031 — 1 month ago