2014-05-17 2 views
1

동일한 LAN에있는 내 Android에서 내 PC로 라이브 비디오를 스트리밍하려고합니다 (입력에 과도한 OpenCV 작업을하고 결과를 파일에 저장합니다). 그 목적으로 libstreaming을 사용해 보았습니다. 그러나 문제는 240x160보다 높은 해상도로 프레임을 전송하는 데 사용할 수 없기 때문에 저의 품질이 좋지 않습니다. 나는 H264를 사용했고 더 높은 해상도를 사용하려고 할 때 libstreaming은 인코더가 이러한 프레임을 처리 할 수 ​​없다는 예외를 던졌습니다.안드로이드에 고해상도 RTSP 서버가 있습니까?

libstreaming을 사용하여 고해상도 프레임을 스트리밍하는 방법에 대한 아이디어가 있으십니까? (720p, 20+ fps가 적당 함). libstreaming을 사용하지 않고 아이디어를 환영합니다 ...

고마워!

답변

0

글쎄, 당신은 FFMPEG의 도움으로 네이티브 C/C++ RTP 또는 RTSP 스 트리머를 할 수 있습니다. Android 환경에서 허용하는 경우 API를 사용하여 직접 소프트웨어를 만들거나 명령 줄에서 FFMPEG를 실행할 수도 있습니다. 사용 가능한 선택 사항 (Java 전용, Java + JNI + C/C++)을 언급하지 않았으므로 정확한 조언을하기가 어렵습니다.

0

현재이 문제가 발생합니다. 그러나 H263 코덱을 사용하여 libstreaming으로 더 나은 결과를 얻을 수있었습니다. 비디오 화질은 여전히 ​​만족스럽지 않지만 720p입니다. 을 사용하여 libstreaming example 1을 기반으로 애플리케이션을 만들었습니다. 여기에 관련 코드 :

private Session mSession; 

[...] 

mSession = SessionBuilder.getInstance() 
    .setContext(getApplicationContext()) 
    .setAudioEncoder(SessionBuilder.AUDIO_AAC) 
    .setAudioQuality(new AudioQuality(8000, 16000)) 
    .setVideoEncoder(SessionBuilder.VIDEO_H263) 
    .setVideoQuality(new VideoQuality(1280,720,30,2000000)) 
    .setSurfaceView(mSurfaceView) 
    .build(); 

내가 OpenCV의를 사용하여 스트림을 처리하는 방법을 모르지만, 예를 들면, 나는 VLC 사용하여 볼 수 있었다 :

C:\>"C:\<your VLC installation path>\vlc.exe" rtsp://<your device IP address>:1234 -f 

편집 : H264 인코더를 사용하여 720p로 스트리밍하고 대신 MediaRecorder 메서드를 강제 실행했습니다. 두 번째가 첫 번째보다 더 선호되거나 선행되어야하는 이유는 확실하지 않습니다. 품질은 위에서 설명한 방법과 거의 비슷하지만 빠르게 움직이는 순간에 발생하는 지터 발생은 사라졌습니다.

SessionBuilder로 스트리밍 방법을 강요가 작동하지 않는

주의 사항 :

mSession = SessionBuilder.getInstance() 
    .setContext(getApplicationContext()) 
    .setAudioEncoder(SessionBuilder.AUDIO_AAC) 
    .setAudioQuality(new AudioQuality(8000, 16000)) 
    .setVideoEncoder(SessionBuilder.VIDEO_H264) 
    .setVideoQuality(new VideoQuality(1280,720,30,2000000)) 
    .setSurfaceView(mSurfaceView) 
    .setStreamingMethod(VideoStream.MODE_MEDIARECORDER_API) //Completely ignored 
    .build(); 

당신은 호출하는 URL에 그것을 강제로 :

C:\>"C:\<your VLC installation path>\vlc.exe" rtsp://<your device IP address>:1234?videoapi=mr -f 
관련 문제