我已經搜索並搜索了很多,沒有真正能夠解決我的問題。流媒體MP3切斷了最後1-2秒的音頻
我在我的服務器上有一個mp3文件,我需要向我的最終用戶提供服務,以便他們可以聽到錄音並確認它是正確的。問題是,在聆聽時,瀏覽器(至少Safari和Chrome)會截斷記錄的最後1-2秒。 (這是不是非常有幫助。
的東西,我已經嘗試過。
- 直接從服務器下載的文件,它並正常播放 。
- 驗證瀏覽器的MP3的MIME類型文件中使用
file
,它的音頻/ MPEG;字符集=二進制 - 下載通過瀏覽器和文件,並 我的服務器文件的文件是完全一樣的字節的文件顯示,(對於 實例)中分別爲9秒長。但是當我在t中播放時他瀏覽器 它顯示該文件只有7秒長。
在沒有運氣的情況下使用文件的標題混淆。
header("Content-Type: audio/mpeg; charset=binary"); header("Content-Disposition: inline; filename=\"{$filename}\""); header('Pragma: no-cache'); header("Content-Length: ". filesize($file_path)); readfile($file_path);
我已經差不多縮小問題的東西,從我的調用服務器上的文件,它帶給我的瀏覽器發生。我嘗試過的東西並沒有真正的幫助。我的一個要求是必須擁有這個受保護的公共目錄,所以我必須通過PHP來提供它,因爲用戶在播放文件之前必須先進行身份驗證。任何想法將不勝感激。
這裏有一些版本,如果有幫助。
CentOS 7.4.1708
Apache 2.4.6
PHP 5.6.30
Chrome Version 60.0.3112.113
Safari Version 10.1.2 (12603.3.8)
更新
The data from the main wav file I'm receiving is the following
Duration: 00:09
Audio Channels: 1
Sample Rate: 8,000
Bits Per Sample: 16
你用什麼MP3編碼器進行錄音?編碼器有可能錯了嗎?你使用**常量**比特率(如果沒有,然後嘗試)?你可以做一個短的(9秒?)文件進行分析嗎?示例文件甚至可能只是環境噪聲或非可聽內容,因爲我們只想檢查持續時間問題與字節內容...... –
因此,我實際上將該文件接收爲wav,然後使用ffmpeg將其轉換爲MP3。當我轉換它時,我使用以下命令:'ffmpeg -i input.wav -vn -ac 2 -ar 8000 -ab 32k -f mp3 output.mp3'當我轉換它並直接使用scp從服務器下載文件時, WAV和MP3完美匹配。問題出在服務於我的文件服務器和我在瀏覽器中接收文件之間。 – n0nag0n
@ n0nag0n是什麼讓你認爲你的服務器和瀏覽器接收它之間的問題?如果您只是將本地文件拖到瀏覽器中,很可能會重現您遇到的問題。 – Brad