2016-11-21 1 views
2

나는 v4l2로 놀고 있었고 마침내 랩톱의 카메라에 연결하여 스트리밍하도록 설정했습니다. 순간카메라 프레임에서 비디오 만들기

나는 비디오 플레이어가 순서대로 컨테이너 내용을 실행하는 기본적인 수준에 생각 등

2.jpg, 나는 다음 저장하는 사진과에 대한 용기가 필요 1.jpg로 프레임을 저장하고 나는 영상을 얻을 .

비디오 형식이 내 컨테이너라고 가정합니다.

어떻게 작성하고 쓸 수 있습니까?

+0

내 MJPEG 작가 라이브러리를 완성. 편집 된 답변을 참조하십시오. – icza

답변

1

가장 쉬운 방법은 일련의 JPEG 이미지로 구성된 간단한 비디오 형식 인 MJPEG 형식의 비디오 파일로 JPEG 이미지를 저장하는 것입니다.

일련의 JPEG 이미지를 ffmpeg과 같은 MJPEG (또는 다른 형식의) 비디오 파일로 변환 할 준비가 된 다른 인코더로 전환 할 수 있습니다. ffmpeg 사용하면 다음과 같은 명령을 할 수있는 : 당신이 이동에 그것을 할 경우

ffmpeg -r 2 -i "%02d.jpg" -vcodec mjpeg test.avi 

, 당신은 죽은 단순 github.com/icza/mjpeg 패키지를 사용할 수있다 (공개 : 나는 저자 해요).

는의는 JPEG 파일을 설정하는 방법을 예를 들어 보자 1.jpg, 2.jpg, ..., 동영상 파일로 10.jpg :

checkErr := func(err error) { 
    if err != nil { 
     panic(err) 
    } 
} 

// Video size: 200x100 pixels, FPS: 2 
aw, err := mjpeg.New("test.avi", 200, 100, 2) 
checkErr(err) 

// Create a movie from images: 1.jpg, 2.jpg, ..., 10.jpg 
for i := 1; i <= 10; i++ { 
    data, err := ioutil.ReadFile(fmt.Sprintf("%d.jpg", i)) 
    checkErr(err) 
    checkErr(aw.AddFrame(data)) 
} 

checkErr(aw.Close()) 
+0

안녕하세요, 저는 여러분이 만든 패키지에 대해 정말 흥분하고 있습니다. 방금 집에 돌아와서 시험해 봤어요. avi 파일을 얻지 만 재생되지 않습니다. VLC는 다음 오류를보고합니다. '[00007fe028009478] avi demux 오류 : 트랙 0 키 프레임이 설정되지 않았습니다. ' 내 코드를 확인하려면 [link] (https://bitbucket.org/coder8/cam) – user3017869

+0

@ user3017869해야합니다. 새로운 이미지 프레임을 추가하려는 경우 'AviWriter'를 열어 두었다가 완료되면 닫습니다. 또한 [mplayer] (http://www.mplayerhq.hu/design7/news.html)로 동영상을 재생할 수 있습니까? 내가 mplayer로 테스트했기 때문에 오류가 없었기 때문에 ('sudo apt install mplayer'). – icza

+0

@ user3017869 이미지 및 결과 비디오가 포함 된 예제 프로그램이 추가되었습니다. 다음을 확인하십시오. [예] (https://github.com/icza/mjpeg/tree/master/example) – icza

관련 문제