내 프로젝트의 일부로 인터넷 라디오 방송용 오디오 아카이브를 개발할 것을 고려 중입니다. 이 아카이브는 날짜/시간별로 색인화되고 주소 지정이 가능합니다.손실 압축을 사용하는 시간 인덱싱 오디오 아카이브를위한 전략
예를 들어, 서버는 스트림 (일반적으로 MP3로 인코딩 됨)에 연결하여 스트림 데이터를 저장합니다. 클라이언트가이 서버에 연결하여 오디오를 2011-07-05 15:58:30
에서 2011-07-05 15:59:37
으로 요청할 수 있습니다. 서버는 재생을 위해 오디오 데이터를 클라이언트에 반환합니다.
나의 초기 생각은 원시 MP3 데이터의 1 분 청크로 디스크에 데이터를 저장하고 데이터베이스에서이 파일을 참조하는 것이었다. 서버는 스트림/파일 형식에 어리석은 짓이며 mpeg 프레임을 이해하지 못합니다. 단순히 데이터를 클라이언트로 전달하여 청크를 선형으로 나누어 전송합니다. 스트림에 동기화하는 것은 클라이언트에게 달려 있습니다. 이것은 인터넷 라디오 서버가 일반적으로 실행되는 방식과 다르지 않습니다. SHOUTcast 서버는 바이트 단위로 바이트 단위로 데이터를 출력하며,이 데이터는 인코더에서 전송됩니다. 클라이언트가 연결되면 MP3 프레임에서 끝나는 지 여부에 관계없이 데이터가 전송됩니다. 동기화 할 클라이언트에 달려 있습니다.
클라이언트 및 오디오 형식과의 호환성을 극대화하는 더 나은 방법이 있는지 궁금합니다. 이것에 대해 어떻게 생각하니?
내가 생각할 수있는 유일한 다른 점은 원시 PCM 오디오로 MP3를 디코딩하고 요청시 필요할 때 다시 인코딩하는 것입니다. 나는 디스크 공간이 필요하고, 다시 인코딩 할 때 품질이 떨어지기 때문에이 경로를 사용하지 않는 것을 선호합니다.
이 질문은 언어에 구애받지 않지만, 도움이된다면 데이터베이스로 MySQL을 사용하여 PHP로 솔루션을 구현할 것입니다.