2016-06-30 6 views
1

지난 7 일 동안 점령 된 문제는 Android 비디오에서 WowzaMediaEngine으로 실시간 스트리밍을 구현하는 것입니다.RTMP를 통해 Wowza로 라이브 비디오를 스트리밍하는 방법

나는 공식 Wowza 페이지에 대한 연구를 시작했으며 안드로이드 및 IOS 용 GoCoderSDK 라이브러리의 존재에 감탄했습니다. "작은"문제는 가격 (10,000 첫 해, 연간 최대 2KB)이며, 내가 "작은"클라이언트 응용 프로그램을 구축하고 있기 때문에, 나는 다른 라이브러리 시도 :

  • libstreaming 내 의견으로는, (추한 코드 확인입니다 어렵지 않은 감정), 수정해야 할 버그가 많이 있지만 상당히 복잡한 기술 (잘 수행됨)이 있습니다. 나는 Nexus 5 marshmallow를 테스트했으며 MediaCodec과 낮은 비디오 해상도를 사용하여 잠시 후 작동했습니다. 해상도를 높이면 MediaRecorder로 전환되며 대부분 MediaRecorder가 작동하지 않습니다. KitKat 장치에서 나는 그것을 전혀 시작할 수 없었습니다. 수정 프로그램을 3-4 일간 실행 한 후 포기했습니다. 더 이상 유지 보수되지 않는 립선 이음새

  • Media Broadcasting Library 유망 해 보이지만 시도하지 않았습니다. 정말 비싸다. 500 $/월은 너무 간단합니다.

  • KickFlip은 코드화되어있어 멋지고 멋진 기능을 제공하며 RTMP/RTSP에 대한 지원을 제거했습니다. 지원을 되돌리려 고했지만 실패했습니다.

  • RealTimeLibs 가격이 허용됩니다. 설치됨 스트림을 시작할 수없는 PlayStore에서 ME (데모 앱)을 브로드 캐스트합니다. 데모 앱이 끊임없이 충돌합니다. 낙담하고, 그들과 연락을 시도하지 않았습니다. 해야 할 일

는, (내가 그것으로 최상의 결과를 가지고 있기 때문에) 라이브러리를 libstreaming 재 작성 또는 내 자신의 솔루션을 작성, GoCoderSDK을 구입 (이 걸릴 얼마나 많은 시간을 잘 모릅니다). 거대한 멀티미디어 경험이 필요합니다 (나는 가지고 있지 않습니다)?

답변

7

질문에 언급되지 않았지만 나는 JavaCV 라이브러리를 몇 번 우연히 발견했지만 리뷰는 그렇게 좋지 않았습니다. 또한 나는 여기에 아주 긍정적 인 의견을 몇 권 보았으므로 그것을 시도하기로 결정했다.

처음에는 매우 혼란 스럽습니다 (javacv.jar 가져 오기, javacpp.jar 가져 오기, ffmpeg.jar 가져 오기, .so 파일을 jniLibs와 일치하는 버전으로 추가 등). 보기와 몇 가지 격렬한 게시물을 본 후에. 이 질문에 대한 답변 (How to f****ing add JavaCV to Android Studio so I can use the f***ing annoying FFmpeg?)은 실제로 많은 도움을 주었고 Samuel Audet (정말 감사드립니다)의 도움을 받아 RTMP를 통해 안드로이드에서 Wowza로 비디오를 스트리밍하도록 설정했습니다. 설정하는 데 필요한 품질 및 비디오 옵션이 있습니다.

나는이 작업을 7 일 (일) 잃어 버렸고 커뮤니티에 귀착하여 boilerplate (or starterkit) android application for live streaming video to wowza media engine을 만들었습니다. 앞으로 많은 다른 wowza 의존적 인 응용 프로그램을 훨씬 빨리 구축 할 수있게 될 것입니다.

+0

소프트웨어 인코딩 만하는 것이 맞습니까? [Android에서 ffmpeg로 하드웨어 인코딩] (https://trac.ffmpeg.org/wiki/HWAccelIntro)에 대한 업데이트가 있습니까? btw를 공유해 주셔서 감사합니다. – kpaxit

+0

@kpaxit 고맙습니다. 고맙습니다. 나는 그것이 GPU를 사용하지 않고 있다고 생각하지만 확실하지는 않다. 나는 FFMpegRecoder (https://github.com/bytedeco/javacv/blob/master/src/main/java/org/bytedeco/javacv/FFmpegFrameRecorder.java)의 JavaCV 소스 코드를 조사했고, 내가 말할 수있는 한, -hwaccel을 사용하지 않습니다. 그러나, 그것은 좋은 특징 일 것입니다. GitHub에서 사무엘에게 직접 글을 쓰는 경우, 레코더 인스턴스에서 간단한 메서드 호출을 사용하여 설정하거나 해제 할 수 있다면 좋을 것입니다. – bajicdusko

+0

어떻게 Wowza Sever를 설정 했습니까? – hunghd