TLDR
Isso não é impossível para responder, mas é praticamente muito difícil de fazer, pois varia com base nos dados que você vai gravar em um disco. Basicamente, você precisa fazer o software de gravação de CD / DVD para determinar se você excedeu a capacidade do disco antes de gravar. [E tenho certeza de que alguns programas, se não a maioria, não conseguem perfeitamente .
Aproximadamente, o que você já fez, ou seja, restringir-se a uma capacidade menor, provavelmente será a única solução viável em geral.
O programa IsoBuster é realmente muito legal. Você pode facilmente ver exatamente como os arquivos e diretórios são armazenados em uma imagem de disco e você provavelmente poderia fazer engenharia reversa de como um determinado sistema de arquivos aloca espaço para diferentes tipos de arquivos usando-o. Eu vou tentar isso sozinho.
Alguns detalhes
Como você, descobri que não é possível comparar o tamanho total dos arquivos em bytes e a "capacidade bruta total" em bytes de um disco.
Em primeiro lugar, os sistemas de arquivos, tanto em um disco rígido quanto em discos ópticos como CDs e DVDs, exigem algum espaço para os dados sobre os arquivos, por exemplo, os diretórios nos quais eles estão armazenados, o nome do arquivo, quando foi modificado pela última vez, etc.
Todo sistema de arquivos (quase certamente) irá requerer diferentes quantidades de espaço para diferentes conjuntos de arquivos e diretórios; eles também terão restrições diferentes em termos de coisas como o tamanho máximo dos nomes dos arquivos, se os nomes dos arquivos podem ser compostos de caracteres Unicode, etc.
Sistemas de arquivos diferentes também suportam ou exigem diferentes tamanhos de setor / bloco, que é aproximadamente a menor quantidade de espaço (quase sempre expressa em bytes) que pode ser alocada para um arquivo, ou seja, um tamanho de setor de 512 bytes no mínimo 512 bytes (somente para os dados do arquivo). No entanto, para o sistema de arquivos UDF, que pode ser usado para CDs e DVDs (e discos Blu-ray):
Small files (and directories) can be stored in the File Entry block itself, similar to the embedded files in NTFS.
i.e. Pequenos arquivos (e diretórios) podem ser armazenados nos próprios 'metadados do sistema de arquivos'. [A fonte é recurso [4] abaixo.]
Alguns recursos
- Entendendo o DVD - Tamanho, configuração e capacidade do disco
- Formato de disco universal - Wikipedia, a enciclopédia gratuita
- Especificação do Universal Disk Format®, Revisão 2.50
- Introdução do Wenguang ao formato de disco universal (UDF)
- CDBurnerXP: criar disco de dados
- Setor de disco - Wikipédia, a enciclopédia livre
- Criação de discos ópticos - Wikipedia, a enciclopédia gratuita
De [5]:
Even if you don't add any files, the used disc space will be somewhere above 1MB. This is because every data image has an inherent system overhead for the allocation tables, volume data, system space, and path tables (to name a few). Also, some space needs to be reserved for lead-in and lead-out processes, approx. 13 MB as of version 4.5 of CDBurnerXP.
Com base em [7], eu não acho que o "lead-in" e o "lead-out" necessariamente se aplicam aos discos de dados.