Gravar com altas taxas de bits em um HDD em vez de SSD leva a graves atrasos

0

Estou tentando fazer gravações off-line com o OBS, mas quando escrevo em um disco rígido clássico, fica muito lento, mesmo que o disco rígido tenha velocidade de gravação rápida o suficiente (+ 40MB / s). Eu tentei aumentar o buffer nas mesmas configurações, mas eles não parecem se relacionar com o IO de saída. Até agora, não consegui encontrar nenhuma configuração de OBS / ffmpeg que pudesse ajudar. Como isso pode ser corrigido?

Log: link

Dump de informações do sistema: link

O log mostra um teste de velocidade simples, usando dd (via WSL) e o log do OBS mostrando duas gravações, com a única diferença sendo o local de salvamento. Como visto, a gravação para o HDD (D :) é atrasada / perde quadros consideravelmente. Em comparação, a primeira gravação para o SSD funciona como esperado. Observe que o OBS não registrou o skipped frames due to encoding lag para a primeira gravação, porque funcionou sem problemas.

eu fiz:

  • teste várias vezes, então o log mostra um exemplo representativo.
  • teste com diferentes tamanhos de buffer para codificação, sem efeito.
  • teste com CRF em vez de CBR.
  • tentou com taxas de bits menores. Giros menos graves já podem ser vistos na taxa de 10k.

Para ficar claro:

  • não há afunilamento da CPU.
  • não há gargalo na velocidade de gravação geral do disco rígido (a taxa de bits de 60k é de cerca de 8 MB / s, o que é bom).

Acho que o problema é: latência de gravação muito alta e buffer de saída muito pequeno, que pode ser um bug no OBS ou no ffmpeg, ou apenas uma configuração ausente que não conheço.

Eu fiz esta pergunta em r / obs antes.

Atualizar : adicionado informações do sistema dump & informações adicionais do registro de gravação.

    
por Vektorweg 25.05.2018 / 18:13

2 respostas

1

Se ele anda como um pato e grita como um pato ...

O problema é a conexão USB2 e a unidade no final dela.

Embora o USB2 seja mais rápido que algumas coisas, ele é mais lento que a maioria das coisas e geralmente é insuficiente para operações de mídia em tempo real.

Suas métricas podem indicar largura de banda suficiente, o provável culpado é que o fluxo de dados puro não considera toda a comunicação indo e voltando por esse link, e os testes são frequentemente otimizados e não representam situações e tipos de dados reais. / p>

Uma unidade USB3 provavelmente é capaz do que você precisa.

    
por 25.05.2018 / 19:21
1

Agradecemos a Suchiman por essa dica.

O cache de gravação está desabilitado por padrão para discos externos no Windows. Habilitar isso resolveu o problema.

Ainda não é a melhor solução, já que o OBS / ffmpeg deve ter seu próprio cache de gravação neste caso.

    
por 25.05.2018 / 21:13