RAID, SSD ou software alternativo para reproduzir vídeos em bruto a 1080p60?


2

Eu sou um pesquisador trabalhando em compressão de vídeo. Como parte do meu trabalho, preciso reproduzir vídeo bruto (ou seja, não compactado) na taxa de quadros correta para os participantes visualizarem como parte de uma avaliação de qualidade de compactação.

Esses clipes têm normalmente 10 segundos de duração, com uma variedade de taxas de quadros de até 60 qps e com uma variedade de resoluções de CIF a 1080p. Eles geralmente são armazenados em arquivos yuv de formato 4: 2: 0.

O problema que tenho é que os vídeos de 1080p não podem ser reproduzidos na taxa de quadros correta (pelo menos acima de 24 ou 30fps). Eu suponho que isso acontece porque os dados não podem ser carregados do HDD com rapidez suficiente.

Eu normalmente usei vlc player, ou um exe windows obscuro que eu chamei vidview. Mas isso é flexível. Eu tentei ajustar o cache de arquivos e os parâmetros de cache de disco no player vlc para 10000ms, mas isso resolve o problema.

Eu costumo usar um computador com Windows 7, mas isso é flexível. Eu posso possivelmente (ou possivelmente não) já ter acesso a uma caixa RAID externa. A máquina desktop que eu estou usando no momento tem um i7, 8GB de memória, um disco rígido SATA2.

Minha pergunta é: seria simplesmente reproduzir os vídeos de uma unidade mais rápida, como uma matriz RAID ou SSD, para resolver o problema?

Respostas:


3

Minha pergunta é: seria simplesmente reproduzir os vídeos de uma unidade mais rápida   como uma matriz RAID ou SSD ser suficiente para resolver o problema?

Talvez - no entanto, antes que isso possa ser respondido mais especificamente, você primeiro tem que determinar Onde o gargalo na reprodução de vídeo é para começar. De fato, se alguém pudesse armazenar em cache todo o vídeo na memória RAM (ou manter um buffer de rolagem longo o suficiente), usar uma unidade de disco mais rápida não faria nenhuma diferença (novamente, supondo que você tenha um buffer grande o suficiente).

Se o seu buffer é tempo suficiente, é possível que sua CPU tenha um gargalo durante a reprodução. Você pode determinar se esse é o caso, observando o uso da CPU durante a reprodução de vídeo; se atingir um valor muito alto (ou se você estiver usando um decodificador de encadeamento único, ele exibirá uma carga de 100 / C%, em que C é o número de núcleos), é possível que sua CPU esteja muito lenta para exibir o vídeo em tempo real.


Depois de determinar que a CPU está não o gargalo, então você pode querer considerar a adição de um dispositivo de armazenamento mais rápido para a máquina (SSD ou RAM). Para determinar se o seu dispositivo de armazenamento é o gargalo, você pode usar algo como resmon.exe (incluído no Windows 7/8) para ver a atividade do disco do seu media player durante a reprodução. Se a taxa de transferência de disco se aproximar da velocidade máxima que o disco pode manipular, é provável que este seja o ponto em que o gargalo está.


1
+1 para "medir primeiro".
Hennes

Com o vídeo não comprimido, é altamente improvável que o processador (especialmente o Core i7) seja o gargalo. É mais provável que o subsistema de E / S, como o OP suspeita e a outra resposta diz.
Bala Sivakumar

Sim, eu deveria ter mencionado na minha resposta porque eu estava disposto a aceitar os OPs, acho que o disco é o gargalo. Vídeo não compactado é muito mais leve na CPU do que a compressão. O OP mencionou que estava testando a qualidade de compressão e não mencionou a dificuldade de reproduzir o vídeo compactado, então presumi que a CPU estava pronta para a tarefa. . . Além disso, mesmo que o buffer seja comprido o suficiente, eles podem estar obtendo déficits de buffer se a E / S do disco não for rápida o suficiente. . .
ernie

3

O HD bruto geralmente requer cerca de 120 MB / s, o que não é provável que você consiga em um único disco giratório.

Os SSDs podem obter essa velocidade com facilidade, mesmo em uma porta SATA de 3 GB / s. Tom's Hardware tem alguns gráficos de velocidades de leitura . Eles possuem gráficos para girar discos bem .

Outra alternativa, já que o clipe é curto, pode ser usar um Disco RAM e enfie o vídeo inteiro lá dentro.

O RAID pode levá-lo até lá, mas provavelmente é a solução mais complicada e, se você usar discos giratórios, ainda precisará se preocupar com a fragmentação, a busca da cabeça e outras sobrecargas que poderiam causar quadros perdidos ou outros atrasos.


1
Meu voto vale por experimentar primeiro um disco RAM.
Taegost

Apesar de um disco RAM ser legal, eles tendem a ser bastante caros. Quase qualquer SSD moderno terá velocidade mais do que suficiente para o que você está tentando fazer. Eu recomendaria definitivamente um SSD.
tbenz9

1
@ tbenz9 por disco de RAM, eu estava pensando apenas um disco de RAM de software (como ligado na resposta original), não hardware dedicado. O custo para isso pode ser gratuito (por exemplo, Gavotte Ramdisk ), se houver RAM suficiente no sistema disponível. O sistema de OPs tem 8 GB de memória e um de 10 segundos, 1080p não comprimido, caberia em menos de 1,5 GB.
ernie

1

Eu tenho feito algum trabalho sobre o mesmo material, 1080p60 é um total dor na bunda é sobre 3Gbps então você precisa de uma sata gen 3 pelo menos para trabalhar com um disco rígido e isso significa tudo na cadeia (processador, disco rígido, placa-mãe ) precisam estar em conformidade com o padrão sata 3. A maioria dos fabricantes diria que eles suportam, mas na verdade não.

Acabei usando muita RAM (não um disco, eu escrevi meus próprios programas), e exclusivamente Linux. Se você está pesquisando no Windows, você não tem idéia do que o computador está fazendo. O Windows esconde muito de você e torna impossível a maioria das coisas à beira da pesquisa do consumidor.

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.