현재이 문제가 발생합니다. 그러나 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