.wav
é um RIFF
Formato de arquivo (msdn)
O tamanho dos dados do bloco RIFF é armazenado em 32 bits. (valor máximo não assinado é 4 294 967 295)
RIFF is limited to ~4.2 GBytes per file.
Quando o software cria um bloco RIFF muito grande, seu tamanho de armazenamento é de 32 bits.
Em algum ponto, ocorre um estouro de inteiro e um número maior de bits é eliminado :
Example file: 6.220 GBytes / 3:00:00 / 96000 Hz / 24 bit / 2 channels / 4608 kbit/s
Real file size(hex): 01 72 C9 E0 86 (6 220 800 134)
Readed from RIFF header(hex) : 72 C9 E0 7E (1 925 832 830)
Real file size(binary): 1 01110010 11001001 11100000 10000110 //33 bits
Readed from RIFF header(binary): 01110010 11001001 11100000 01111110 //32 bits
01
aqui é descartado.
relatório ffprobe:
Duration: 00:55:43.46, bitrate: 14884 kb/s
Stream #0:0: Audio: pcm_s24le ([1][0][0][0] / 0x0001), 96000 Hz, 2 channels, s32 (24 bit), 4608 kb/s
FFprobe duração errada / taxa de bits
O FFprobe não pode encontrar nenhum metadado no arquivo e tentar calculá-lo a partir de dados verdadeiros :
- Um fluxo com taxa de bits: 4608 kbit / s (96000 Hz * 24 bits * 2 canais)
- Tamanho do bloco RIFF: 1 925 832 830 (verdadeiro, mas errado: D)
A duração será (tamanho total do bloco dividido pela taxa de bits):
1 925 832 830 / (4 608 000 / 8) = 3343.459 seconds
/ 8
é porque a taxa de bits é bits por segundo (um byte é 8 bits)
3343.459 é exatamente 00: 55: 43.459
( Média? ) A taxa de bits para o arquivo inteiro é SizeOfFile / TotalSeconds:
6 220 800 134 / 3343.459 = 1860588.1316 Bytes/s ( 14884705.053 bits/s )
Como obter um arquivo grande?
Use outros formatos para armazená-lo, como:
FLAC / .rf64 / .w64 / Etc.
Para concatenar arquivos usando o ffmpeg ( Concatenar a página Wiki do FFmpeg ):
ffmpeg -f concat -i mylist.txt -c:a flac output-ffmpeg.flac
em que mylist.txt
é
file '/path/to/file1.wav'
file '/path/to/file2.wav'
file '/path/to/file3.wav'
Já tem um arquivo WAV grande?
Você pode reproduzi-lo . Todo. Com um truque.
Vamos definir o tamanho do pedaço de dados RIFF como 0
. Isso fará com que alguns players de áudio (?) leiam todo o pedaço de dados (até o final do arquivo ? ).
Relatório FFprobe do arquivo editado:
Duration: 03:00:00.00, bitrate: 4608 kb/s
Stream #0:0: Audio: pcm_s24le ([1][0][0][0] / 0x0001), 96000 Hz, 2 channels, s32 (24 bit), 4608 kb/s
NOTE: Rewriting full file is not required when saving file in HEX editor.
- Faça o download de um editor HEX gratuito (HxD por exemplo)
- Faça uma captura de tela ou uma cópia dos bytes marcados. (como backup)
- Preencha com
00
. - Se estiver usando o HxD: Pressione o botão
save
e depoisCancel
imediatamente (para impedir a criação da cópia de backup completa) - Abrir. (Testado em VLC / MPC-HC . Mas o WMP falhou: D)
Mas
O FLAC soltará um erro se o .WAV tiver alguns metadados no final do arquivo.
Testado com o Audacity. Verificado com o editor HEX e encontrado metadados no final do arquivo.
FLAC: ERROR: got partial sample
Mas arquive com 2:59:59 segundos de duração. E sem o checksum md5.
Isso significa que temos não verdadeiro arquivo flac (leia corrompido ).
Mas legível.