2011-12-14 4 views
7

DDMS를 사용하여 Android 휴대 전화에서 스크린 샷을 가져 와서 비디오로 변환하고 네트워크를 통해 비디오를 스트리밍하는 효율적인 방법이 필요합니다.동영상으로 저장, 스트림으로 변환 Android 화면

나는 스크린 샷의 데이터로 채워되는 RawImage 있습니다

까지
RawImage mRawImage; 

알고 나는 이미지를 만들 SWT를 사용하고 저장 :

PaletteData paletteData = new PaletteData(
    mRawImage.getRedMask(), 
    mRawImage.getGreenMask(), 
    mRawImage.getBlueMask()); 

ImageData imageData = new ImageData(
    mRawImage.width, 
    mRawImage.height, 
    mRawImage.bpp, 
    paletteData, 
    1, 
    mRawImage.data); 

ImageLoader s = new ImageLoader(); 
s.data = new ImageData[] {imageData}; 
s.save("temp.jpg",SWT.IMAGE_JPEG); 
  • 수를 해당 이미지 시퀀스를 비디오로 변환하는 방법을 제안하고 비디오를 스트리밍합니까?

나는 스트리밍을 사용할 수 있습니다 NanoHTTPD을 발견하지만 난 어떻게 변환 및 비디오 이미지를 압축 할 수 있습니다?

  • 는 내가는 FFmpeg를 사용하여 그렇게 할 수 있다고 생각합니까?

나는 FFMPEG와 video4linux2를 사용하여 웹캠을 스트리밍 좋은 Tutorial을 발견했다.

RawImagebytes을 FFMPEG로 전송하여 실시간 비디오 스트림으로 변환 할 수 있습니까?

실제 코드 :

$ffmpeg -f video4linux2 -i **<add here java stream>** http://78.47.18.19:8090/cam1.ffm 

어떤 제안 :

$ffmpeg -f video4linux2 -i /dev/video0 http://78.47.18.19:8090/cam1.ffm 

이 비슷한로 교체?

감사

PS : 나는 나 압축 된 비디오 이미지를 변환 할 다음 HTML5 또는 플래시 플레이어

중 하나와 그것을 재생하기 위해 네트워크를 통해 비디오를 스트리밍하는 솔루션을 기대
+0

안녕 살라미, 당신은 정적 이미지를 캡처하는 속도는 무엇입니까? – Janvo

+0

초당 5-10 프레임으로 충분합니다. – glarkou

+0

안녕 살라미스, 내 대답은 위의 질문에 대한 답변을 아래 믿습니다. 장치에서 캡쳐 할 때 비디오에 인코딩 할 충분한 초당 프레임 수를 확보해야합니다 (ffmpeg의 -r 매개 변수 참조). – Janvo

답변

5

이이 접근하는 두 가지 방법 :

1) 캡처, 인코딩 및에 스트리밍 및 장치 자체에서

또는

2) 서버에서 인코딩, 인코딩 및 스트림

모든 요구 사항을 잘 모르겠지만 옵션 2가 이동 경로라고 가정합니다. 최종 목표를 달성하기 위해 더 나은 성능과 다양한 도구를 사용할 수 있습니다.

캡처 설명하는 방식과 거의 동일하게 JPEG 이미지를 캡처합니다. FILE1.JPG FILE2.JPG FILE3.JPG FILE4.jpg 등이있는 인덱스를 각각 추가하십시오.

이제 일정한 간격으로 요구 사항에 따라 이러한 이미지를 서버에 업로드하십시오.

인코딩 사용 mencode 그래서 같은 손실 압축의 속도를 설정합니다 :

mencoder "./*.jpg" -mf fps=5 -o yourvideo.avi -ovc lavc -lavcopts vcodec=msmpeg4v2:vbitrate=800

을 그 작업이 완료되면, 당신은 그래서 같은 MP4 만들 수는 FFmpeg를 사용할 수 있습니다

ffmpeg -r 5 -b 1800 -i %01d.jpg yourvideo.mp4 

스트리밍 이제 네트워크를 통해 mp4를 스트리밍하려면

http://myserver/androidStream 

항상 스트리밍 할 수있는 가장 최신의 비디오를 가리키는 것 있도록 동적으로 작성된 M3U 재생 목록을로드합니다 같은 웹 페이지를 etup. 사용하는 플레이어에 따라 M3U 재생 목록을 다음 비디오를로드하는 '다음'M3U 재생 목록으로 지정할 수 있습니다. 또한 요구 사항에 따라 ASX 또는 PLS와 같은 대체 재생 목록 형식을 볼 수도 있습니다.

참조 : 기타 M3U 재생 목록 형식의 예로는 http://en.wikipedia.org/wiki/Advanced_Stream_Redirectorhttp://en.wikipedia.org/wiki/PLS_(file_format)을 참조하십시오.

위의 일반적인 단계를 사용하면 장치가 분당 n 개의 이미지 비율로 이미지를 캡처 한 다음 해당 이미지를 인코딩하여 서버에 업로드하여 인코딩 할 수 있습니다. 이러한 이미지가 인코딩되면 파일을 참조하여 동영상을 직접 스트리밍하거나 플레이어가 '현재'동영상에서 '다음'동영상으로 이동할 수있게하는 M3U 유형 재생 목록을 설정할 수 있습니다.

관련 문제