0

한 Android 장치에서 다른 장치로 실시간 미리보기를 표시하려고합니다. 여기 이며 I는 짓,미디어 코덱 디코더 및 재생

발신자 : 1.Camera 프레임 (YUV) -> 2.Mediacodec (인코딩 H264 []를 바이트) -> 4.mp4

는 I> '를 3.MediaMuxer- m 소켓 연결을 통해 미디어 인코더의 출력을 보냅니다.

수신자 : 5.byte [] via socket -> 6. Mediacodec (디코더) -> 7. 재생.

5 단계까지 모두 정상적으로 작동합니다.

그러나 [] 바이트를 디코딩 할 수 없습니다. 여기서 누락 된 것은 무엇입니까? 나는, sps와 pps를 제대로 보낼 수 없다는 것을 안다. 또한 내가 보내는 데이터가 올바른 데이터인지 테스트하는 방법은 무엇입니까?

감사합니다.

답변

0

인코딩 된 h264 비디오를 mp4 (컨테이너 형식)로 다중화합니다. 그러나 디코딩 쪽에서는 demuxer (또는 파서/스플리터)를 사용하지 않습니다. 미디어 코덱 디코더는 컨테이너 형식이 아닌 기본 비디오를 가져올 수 있습니다. 미디어 추출기를 사용하여 android에서 demux합니다. (https://developer.android.com/reference/android/media/MediaExtractor.html)

+0

MediaExtractor가 파일이나 URL 만 입력하는 것처럼 보입니다. MediaExtractor에 byte []를 전달할 수 있습니까? –