PHP에서 리눅스 명령어 개입
안녕하세요.
XE로 사이트를 운영중입니다.
다름이아니오라 저희사이트는 MP3 파일 업로드를 하고 이용자들이 다운로드해가는 사이트인데
문제는 본문에 스트리밍(Jwplayer)로 재생 미리듣기가 지원되는데
중국쪽에서 자꾸 소스보기나 IDM이란 프로그램으로 추출해가는 문제점이 있습니다.
추출을 아에 막을 수는 없지만,
보통 이용자들이 320Kbps 음질로 업로드하는데
리눅스의 ffmpeg 데몬으로 128kbps로 인코딩하는 작업이 필요합니다.
서버에 FFmpeg이란 명령어로 wav나, mp3 의 음질을
인코딩할 수 있는데요!
ffmpeg -i A.mp3 -acodec libmp3lame -ac 1 -ab 128k B.mp3
서버에 자료가 업로드 되면 (보통 320Kbps 음질로 업로드)
다운로드시에는 업로드한 파일 그대로 받을 수 있도록 되어지고
본문에 스트리밍 서비스만 인코딩된 128kbps로 스트리밍 할 수 있도록 제공되어지면 좋겠습니다.
혹시 Xe를 모르는 php개발자분들이 있으시기 때문에
https://github.com/rhymix/rhymix/blob/master/modules/file/file.controller.php
function procFileUpload()
부분에서 당담하는 것으로 알고 있습니다.
방식은 file 컨트롤러에서 업로드시에, 원본 그대로 유지 ex) A.mp3 (A 파일명은 XE에서 랜덤 숫자로 바꿔진 파일명대신)
또 하나는 업로드시에 lame 명령어를 수행하여 A128kbps.mp3 인코딩하여 보관 ( 저장위치는 동일 )
하도록 만들어주면 됩니다:) (삭제시에도 해당 인코딩 파일도 동시 삭제되어야 합니다)
본문에 출력하고 있는 부분은 뒤에 파일명 원본 파일명 뒤에 128kbps.mp3 를 붙여 스트리밍하여 제어하면 될 것 같습니다.
- Nginx로 스트리밍 제공중입니다. (따로 스트리밍 서버 구축이 필요 없습니다.)
- ffmpeg가 이미 설치되어있어서 XE php상에서 명령어 개입하여 인코딩을 하면 됩니다.
기간과 견적 댓글로 부탁드립니다!!
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기
댓글 1개