Menggunakan nilai bitrate pada perhitungan menyebabkan kontradiksi, mengapa?

0

Apakah Anda tahu mengapa Calculation 1 di bawah ini tidak cocok?

Referensi:

Buffer audio: bingkai, sampel dan saluran

VLC - Media Information:
   num channels: 2 (stereo)
    sample rate: 44100 Hz
bits per sample: 32 => bytes per sample: 4
        bitrate: 192 kb/s
       duration: 7 mins, 23 secs => 443 secs

Windows - File Properties:
           size: 10,642,422 bytes => 10393 KB

Perhitungan 1 (tanpa menggunakan bitrate) (menggunakan nilai bulat untuk kesederhanaan)

1 second: 44100 samples => 44100 * 4 = 176400 bytes => 172 KB (looks a lot for just 1 sec)
This way: 443 secs => 443 * 172 KB = 76196 = 74 MB, but the file just 10 MB (!!! Contradiction !!!)

Perhitungan 2 (menggunakan bitrate)

 bitrate: 192 kb/s => 24 KB/s
1 second: 24KB => 443 seconds: 443 * 24 KB = 10632 KB = 10393 KB (like above) + [some metadata] (!!! Match !!!)

Terima kasih!

davidesp
sumber

Jawaban:

2

Karena file tersebut dikompres. Kecepatan sampel dan bit per sampel adalah parameter pemutaran setelah dekompresi. Ukuran file untuk format terkompresi, jumlah data yang perlu diunduh, bukan jumlah data yang mencapai konverter digital-ke-analog.

SF.
sumber
terima kasih @SF untuk klarifikasi. Ngomong-ngomong, mungkin Anda bisa membantu saya untuk mengklarifikasi masalah yang saya alami di sini: stackoverflow.com/questions/52513425
davidesp
@davidesp: Anda tidak akan mendapatkannya dengan mencoba menghitung byte awal / akhir dari file yang dikompresi. Kompresi, mengikuti model psikoakustik, mengompres beberapa bagian audio lebih kuat, beberapa lebih lemah, sehingga waktu perekaman sangat longgar terikat ke posisi file. Tidak masalah Anda memerlukan setidaknya beberapa blok kembali karena kompresi sangat tergantung pada memodifikasi suara yang sudah dimainkan; Anda tidak dapat memulai dari awal pada titik acak mana pun. Ada seluruh lapisan abstraksi indeks mp3 di mana waktu perekaman dipetakan ke tata letak byte.
SF.
terima kasih @ SF. Jadi, apakah saya punya opsi pada posting saya yang tertaut pada url di atas (StackOverflow)?
davidesp
@davidesp: Saya tidak tahu alat apa yang disediakan Javascript dan Web Media API. Cara tingkat rendah tentang hal itu adalah dengan mengunduh header / indeks, mendekodekannya, menentukan posisi file dari fragmen yang benar, mengunduh blok yang mengandungnya, mendekodekannya, maju dalam blok pertama yang didekodekan untuk memulai audio yang Anda inginkan, dan mainkan sampai posisi ujung audio dalam blok terakhir. Jelas bukan hal yang ingin Anda lakukan pada biner mentah melalui javascript.
SF.