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

[android]동영상을 byte 단위로 재생하는 방법.

0 추천
mediaplayer로 동영상을 재생하려고 하는데, byte에 영상을 담고 시작위치와 종료위치를 알려주는

byte를 알고 싶어서 여쭤봅니다. 그 byte를 이용해서 사용자가 중간에 정지한 위치, 원하는 위치등을

자유롭게 수정하고 싶거든요. '-';

자료를 찾아보니 대부분 byte쪽은 미포함된 예제라 안펍 고수분들께 여쭤봅니다 ㅠ..
anci (19,950 포인트) 님이 2013년 7월 4일 질문

2개의 답변

0 추천
 
채택된 답변
byte단위 제어는 TS라면 몰라도 일반적인 포멧은 불가능합니다.

MKV, AVI, MP4 같은 일반적인 동영상의 경우 Header부분과 실제 데이터가 들어가 있는 부분으로 나뉘어 있으며

헤더에 해당 시간의 비디오, 오디오 정보가 들어가 있는 offset 위치와 size가 들어 있습니다. 헤더를 먼저 읽었다고 하더라도,

오디오 데이터<-> 비디오 데이터가 번갈아 가며 나올 수도, 한 데이터만 나올 수도 있기 때문에, 불가능합니다.

 

TS도 100% 는 불가능하나. Header 부분과 데이터 부분이 188씩 쪼개져 나와 있기 때문에

TS를 사용할 경우 비트레이트 * 시간을 하면 거의 재생한 사이즈가 됩니다.
사악미소 (65,330 포인트) 님이 2013년 7월 4일 답변
anci님이 2013년 7월 4일 채택됨
사악미소님 답변 감사드립니다.
seekbar로 원하는 구간 선택 후, byte로 구간의 값을 받아서 원하는 만큼 자르려고 했거든요.. 좀 더 생각을 해봐야겠네요..ㅠㅠ
0 추천
동영상 프레임 자체가 가변적이라 바이트단위로 재생하면 이상하지 않을까요? 고정바이트 프레임 코덱은 흔하지 않을거 같은데요 기냥 제 생각 ㅎㅎ;
익명사용자 님이 2013년 7월 4일 답변
아, 그렇군요..근데 제가 질문을 좀 요상하게 올린것 같아서 ㅎㅎ;;
다시 말씀드리자면..동영상을 시작할 때의 주소와 종료되는 시점의 주소 등.. 제가 원하는 구간의 위치를 바이트단위로 알아내고 싶습니다..
파일크기가 1024라고 치면 시작은 0이겠지요 . 중간 부분을 500이라 치고 , 500부터 1024까지 실행하도록 인위적으로 바꾸고싶어서요..
답변감사합니다.꾸벅(_ _)
...