개발 Q&A

제목 PHP 음원 병합시 속성 문제로 인한 오류 관련 문의.
카테고리 PHP
글쓴이 madman 작성시각 2017/04/26 10:59:20
댓글 : 2 추천 : 0 스크랩 : 0 조회수 : 11668   RSS

안녕하세요. 일전에 관련 문의를 드린 적이 있는데, 내용이 좀 추가되서 재문의드립니다. (답변 주셨던 분들께는 미리 양해 부탁드립니다.) 

 

각기 다른 서버에 올려져있는 2개의 음원을 병합해서 서버로 올려주고자 하는데요. 아래와 같이 실행하면 병합된 음원은 잘 올라가지는데 한개만 재생되고 끊깁니다. A부분은 재생되고 B부분에서 끊기는... 

그래서 확인을 해보니, 두 음원의 속성이 다르더라구요. (아래와 같이 정리해봤습니다.) 

[A음원] 

Bitrate : VBR 

Samplingate : 44100 

ChannelMode : Mono 

Version & Layer : MPEG 1 Layer III 

[B음원]

Bitrate : 64Kbps 

Samplingate : 22050 

ChannelMode : Stereo 

Version & Layer : MPEG 2 Layer III 

 

이 두 음원을 그냥 MP3 Merger같은 프로그램으로 병합을 해봐도, 아래 코드로 실행한 것과 같이 A부분만 재생됩니다. 앞으로 올라갈 음원은 그렇다쳐도, 이미 서버에 올라가있는 음원들을 대상으로 실행해야 하는지라... 고민이네요. 코드로 속성 조정을 할 수 없을까요? 답변 주시면 감사하겠습니다. (속성이 같은 경우엔 첨부한 코드로 잘 재생됩니다. 병합도 물론 잘 되구요.)

 

 

 

public function file_test()
 {
   $AFile = '/A/www/common/upload/A.mp3';  //A 서버의 A 음원
  $BFile = '/B/www/common/upload/B.mp3'; //B 서버의 B 음원
 
  file_put_contents('/home/www/common/media_upload/new_'.$date.'.mp3', // B서버 디렉토리
  file_get_contents($AFile).file_get_contents($BFile));
 }

 

 다음글 fsockopen을 사용해 외부서버 파일을 읽을려고 하... (1)
 이전글 select 를 여러번 하는게 나을까요 php 루프를 ... (7)

댓글

변종원(웅파) / 2017/04/26 13:02:58 / 추천 0

이런 상황은 단순병합이 아니라 2개를 모두 플레이할 수 있는 플레이어로 연결해서 재생하거나

똑같은 포맷으로 컨버팅해서 병합을 해야합니다.

madman / 2017/04/27 16:28:44 / 추천 0
답변 감사합니다. 하... 어렵네요.