마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

http mpeg 실시간영상 저장 질문입니다.

0 추천
안녕하세요.

mpeg 실시간 url을 여태 webview로 영상을 띄었는데요.

이 영상을 mp4로 저장해서 video view로 보고 싶은데

어떤 방법이 있나요?
배쟁 (760 포인트) 님이 2017년 6월 13일 질문

1개의 답변

0 추천
 
채택된 답변

mpeg를 굳이 mp4로 저장해서 볼 필요가 있는지는 모르겠네요..

mpeg2 video에 mp3로 이루어진 컨텐츠일 가능성이 높은데, 이건 MPEG2PSExtractor 를 통해, 

안드로이드에서 기본으로 지원합니다.

따라서 http get 같은 것으로 다운받아 mpeg 파일로 그대로 저장하셨다가 VideoView로 돌리시는게 좋을 듯 합니다.

 

굳이  MP4로 변환해서 저장하시고 싶으시다면,

1. MediaExtractor 로 Video/ audio packet을 각각 추출 한 후 

2. MediaMuxer 로 이 패킷을 넘겨 mp4로 생성하는 것이 제일 깔끔할 듯 합니다.

 

익명사용자 님이 2017년 6월 13일 답변
배쟁님이 2017년 6월 14일 채택됨
답변 감사합니다. 한가지 더 여쭤보고 싶은데요.
MediaExtractor setDataSource에 제 실시간 http url을 넘겼는데
java.io.IOException: Failed to instantiate extractor. 익셉션이 뜨네요..
제 url 영상이 MediaExtractor에서 지원하지 않는 영상인가요?
불행히도 그런 듯 합니다.
https://android.googlesource.com/platform/frameworks/base.git/+/master/media/jni/android_media_MediaExtractor.cpp 에서 해당 메세지가 찍힌 듯 하고,
코드를 따라가다보면,
https://android.googlesource.com/platform/frameworks/base/+/4a30052beacebd99b37f3a4db248d718d9f98820/media/libstagefright/MediaExtractor.cpp
의 Create 메소드에서 sniff로 컨텐츠의 type을 찾는데, 못 찾은 듯 합니다.
패킷 추출은 ffmpeg 에서 AVPacket을 리드하는 방식으로 구현 하셔야 할 듯 합니다.
...