나는 정말로 내 문제를 해결할 수있는 아무것도 검색하지 않고 검색하지 않았다.MP3 스트리밍은 오디오의 마지막 1-2 초를 자른다.
내 서버에 내 최종 사용자에게 제공해야하는 녹음 파일을 듣고 올바른지 확인하는 mp3 파일이 있습니다. 문제는 청취 할 때 브라우저 (Safari 및 Chrome 이상)가 기록의 마지막 1-2 초를 차단한다는 것입니다. (이는
- 서버에서 파일을 직접 다운로드.
물건은 이미 시도했습니다. 매우 도움이되지 않습니다, 그것은 제대로 을 재생한다. 검증
- 브라우저 mp3 파일의 MIME 타입
file
을 사용하여 파일 이름은 - 내 서버 파일은 정확히 동일한 바이트이며 브라우저를 통해 파일을 다운로드 한 파일은 ( 인스턴스의 경우) 길이가 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 인코더는 무엇입니까? 엔코더가 잘못했을 가능성이 있습니까? ** constant ** bitrate를 사용하고 있습니까? 분석을 위해 짧은 파일 (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