2017-11-05 14 views
0

나는 이것에 대한 해결책을 찾고 있었고, 나는 완전히 붙어있다. icecast/shoutcast libs는 모두 3.6을 사용하면서 문제가되는 Python 2.7 인 것 같습니다.파이어 폭스 방송 (shoutcast) (DNAS) 또는 icecast

브로드 캐스트와 인증을 어디서부터 시작해야하는지에 대한 아이디어는 매우 유용 할 것입니다. mp3 파일을 스트리밍하려고합니다.

TIA.

+0

그것은 SHOUTcast에해야합니까 (example.com이 아이스 캐스트 서버입니다)? 대신 Icecast를 사용할 수 있다면 HTTP PUT 요청 일뿐입니다. SHOUTcast 소스는 비표준입니다. – Brad

+0

@ 브래디 icecast도 작동합니다. PUT 요청을 통해 스트리밍하는 방법을 다시 알지 못합니다. –

답변

0

먼저 오디오 스트림을 인코딩해야합니다. 이 스트림을 실시간으로 실행해야하며 일정한 샘플 속도가 있어야합니다. 이를 통해 MP3 파일을 파이프하는 것만으로는 충분하지 않습니다. 스트림을 손상시킬 수있는 ID3 태그를 가질 수 있으며 샘플 속도가 다를 수 있습니다. 또한 인터넷 스트리밍에 대해 일정한 비트 전송률을 갖는 것이 이상적입니다 (그러나 스트림이 작동하는 데 필요하지는 않습니다).

기본적으로 재생되는 것과 동일한 속도로 생성되는 하나의 커다란 끝이없는 MP3 파일이 있습니다.

다음으로 Icecast 서버에 HTTP PUT을 작성하기 만하면됩니다. 이 질문보기 : Is there any way to do HTTP PUT in python

아이스 캐스트는 일반적으로 basic auth을 사용합니다.

당신이는 FFmpeg에 밖으로 껍질 (이하 제어이기는하지만) 자신에 대한이 쉽게 확인하려면

:

ffmpeg -re -i [some playlist] -f mp3 -method PUT http://example.com/some-stream 

+0

ffmpeg를 사용하면 내 프로젝트의 다른 부분에서도 잘 작동합니다. 콜백으로 ffmpeg를 호출하고 호출하는 방법을 정확히 설명해 주시겠습니까? –

+0

ffmpeg를 다음과 같이 사용 :'ffmpeg -i "[file]"-f mp3 -method PUT http : // [usr] : [pswd] @ [호스트] : 8000/stream.mp3' 결과 :'av_interleaved_write_frame) : 알 수없는 오류 http : // [usr] : [pswd] @ [host] : 8000/stream.mp3 : 오류 번호 -10053 발생 크기 = 7kB 시간 = 00 : 00 : 00.50 bitrate = 107.4kbits/s 속도 = 43.9x 비디오 : 0kB 오디오 : 6kB 자막 : 0kB 다른 스트림 : 0kB 글로벌 헤더 : 0kB muxing 오버 헤드 : 4.768518 % 변환 실패! 아이디어가 있으십니까? –

+0

@MattCowley 아, 입력하기 전에'-re'가 필요합니다. 속도는 1 배가되어야합니다. :-) 또한 변환은 스트림의 끝이기 때문에 항상 "실패"합니다. 당신이 영원한 근원에서 읽는 경우에, non-issue. 그리고 귀하의 인증 URL은 정상이어야합니다. 불행히도 파이썬 콜백을 도와 드릴 수 없도록 파이썬을 작성하지 않습니다. – Brad