2011-04-06 4 views
2

사용자의 사운드 카드 출력을 캡처하여 실시간으로 RTMP를 통해 red5 서버로 스트리밍하는 방법을 찾고 있습니다.자바 애플릿에서 사용자의 사운드 카드 출력 캡처하기

오디오 리디렉션을 사용합니다. Windows Stereo Mix는 구성하기가 매우 어려우므로 구성 및 Windows 버전간에 일관되게 작동하지 않으므로 옵션이 아닙니다.

나는이 방향으로 모든 종류의 솔루션 가능성을 열어두고 있습니다. 어쩌면 JNI/JNA를 사용해도 될까요?

의견을 보내 주셔서 감사합니다.

+0

Windows 오디오 믹스를 사용할 때 생기는 구성상의 어려움은 무엇입니까? –

+0

@Neil Coffey에 동의합니다. 스테레오 믹스 옵션은 Windows의 모든 최신 버전에서 일관되게 작동합니다. Vista 이후 장치는 일반적으로 기본적으로 사용하지 않도록 설정되어 있지만이를 수정하기위한 튜토리얼이 많이 있습니다. - http://www.howtogeek.com/howto/39532/how-to-enable-stereo-mix-in-windows-7 -to-record-audio/ –

+0

나는 사용자가보기가 너무 어렵다. 우리 사무실에서도 Stereo Mix가 작동하지 않는 구성을 발견했습니다 (XP). 이 기능은 우리 앱에 매우 중요합니다. – nanoman

답변

0

Ok - 브라우저에서 사운드 카드 출력을 캡처하는 고유 한 방법이 Java에 없습니다. Java Native Interface를 사용하여 플랫폼 특정 코드를 작성하여 라인을 가로 채고 원시 오디오 데이터를 애플릿으로 전달하여 추가 처리 할 수 ​​있습니다.

0

JNI/JNA를 사용하는 경우 C++ 또는 C를 통해 사운드 드라이버에 액세스하지 않는 것이 좋습니다. 어쨌든 Java로 인터페이스를 작성하지만 C++ 또는 C로 구현되기 때문에 훨씬 쉬울 것입니다.

+0

나는 100 % 확실하지는 않지만 이것이 도움이 될 것이라고 생각하지 않습니다. 내가 아는 한, 사운드 드라이버는 Windows 스테레오 믹스를 캡처하여 Java로 얻지 못하는 "비밀"출력이 없습니다. 즉, 사용자가 Windows 스테레오 믹스에서 아무것도 나오지 않도록 컴퓨터를 구성한 경우 멀티플렉싱 사운드 드라이버는 아무 것도 캡처하지 않습니다. 그래도 이보다 더 많은 연구를하는 포스터에는 아무런 해가 없다고 생각합니다. –

0

Java 자습서의 Capturing Audio을 참조하십시오.

사운드 라인의 데이터를 가로 채기 전에 애플릿을 디지털 서명하고 최종 사용자가 신뢰할 수 있어야합니다.

'오디오 루프백'소프트웨어 또는 하드웨어가 활성화되어 있지 않으면 완전히 신뢰할 수있는 애플릿에서도 완전히 실패 할 수 있습니다.

+0

내가 말했듯이, 나는 사운드 카드 입력 신호 (또는 루프백 장치)를 포착하고 싶지 않지만 사운드 카드의 _ 출력 _을 포착하고 싶다. – nanoman

+0

네, 원래 질문에서 이해합니다. 당신의 요점은 무엇입니까? BTW - 애플릿은 샌드 박스에서 소리를 낼 수 있지만 사운드 라인 **에서 데이터를 가로채는 ** (예 : ** 출력 ** 읽기) 서명 된 애플릿이 필요할 것입니다. –

+1

@Andrew - 실제로 해 보았습니다. 나는 그것이 사실이 아니라고 느낀다. (설명서에 서명 된 애플릿이 필요하지만 최소한 Java 플러그인의 일부 버전에서는 이것이 사실로 보이지 않습니다.) –

0

이렇게 보일 정도로 사소한 것은 아닙니다.

당신이해야 할 일은 [1 부 - '정보를 저장하는 장소를 만들기] :

  • 어디에 파일을 저장하기 위해 서버를 설명합니다. (예 : Google App Engine)
  • 은 파일 저장 방법을 설명합니다. (예 : 데이터 저장소)
  • 은 데이터의 무결성이 얼마나 중요한지 설명합니다.

는 1 개 메가 바이트 파일 (예를 들어 오그) 오디오 파일의 최대 크기를 말할 수 있습니다 (예를 들어. 그 다음 데이터를 스트리밍하는 예 아파치는 FileUpload를 기존의 업로드 API를 사용하여 파일을 업로드하는 것이 더 쉽습니다) 서버 데이터베이스에 업로드하려는 파일. 자동화 업 로더를 만들려면 수동으로 사용할 수있는 웹 페이지 프론트 엔드를 만들 수도 있습니다.

질문에 대한 답변을 원하면 사람들이 대답 할 수있는 명확한 질문을하십시오. 제한을 지정하지 않으면 IMO 비전문가이며 최소한 복잡한 솔루션을 작성하지는 않습니다.


죄송합니다. 초기 답변이 유용하지 않았습니다. 문제를 단순화하려고했지만 단순화했습니다. 문제에 대한 잠재적 인 솔루션으로

"Everything should be made as simple as possible, but not simpler." A. Einstein.는, 나는 추천 수 :

  • Screener - 자바 프로그램을뿐만 아니라 오디오 스트림뿐만 아니라 스크린 캐스트 비디오를 포함. enter image description here

그래도 문제가 해결되지 않으면 최소한 유용하다고 생각합니다.

+0

나는 사용자의 사운드 카드 출력을 캡처하여 실시간으로 서버로 스트리밍하려고한다. 일반적인 솔루션은 Windows Stereo Mix 기능을 사용하여 사운드 카드 출력을 가상 입력으로 라우팅합니다. 그것이 내가 원하지 않는 해결책이다. – nanoman