2012-03-05 3 views
0

현재 우분투 10.04 및 ffmpeg에서 작업 중입니다. 여기 내 상황 :ffmpeg로 특정 창의 비디오 녹화

I이 창을 만들고에서 비디오 재생이 명령을

video_handle/static/simpleVRML media/generated/video1330515739317/chunk0.avi 

내가 그 비디오 컨테이너에 표시되는 영상을 기록하고 그것을 저장해야을 비디오 파일; webm이 선호됩니다. 비디오 길이는 정확히 1 초 FPS가 이미이 명령 시도 29.97

입니다 : 컨테이너가 나온다하지만 난 정말 정확 출력을 필요로하는 것은 실제로 화면을 기록

ffmpeg -loglevel panic -f x11grab -s 640x480 -r 25 -i :0.0+0,50 -vframes 30 -sameq -y out.mpg >/dev/null 2>&1 

어떤 아이디어 ???

+0

http://stackoverflow.com/a/43464269/6180077 FFMPEG C++ mp4 형식 스크린 레코더 응용 프로그램 작동에 대한이 링크를 방문하십시오. –

답변

1

다음과 같은 한 가지 해결책이 있습니다. X11에서 일련의 정지 이미지를 캡처하고 몇 초의 패딩을 추가합니다. 정지 이미지를 탐색하고 원하지 않는 이미지를 삭제하십시오. 좋은 프레임 집합을 비디오로 인코딩합니다. 적어도 캡처 단계에서는 무손실이라는 이점이 있습니다. 귀하의 예제는 손실이 많은 MPEG 형식으로 인코딩됩니다. 우분투 리눅스에있어 이후

mkdir images 
ffmpeg -f x11grab -s 640x480 -r 25 -i :0.0+0,50 -vframes 90 -y images/out%04d.bmp 

, 다음을 사용하여 이미지를 검색 할 수 있습니다 :

gnome-open images 

이 파일 이름 이미지의 시퀀스를 포함

는 스틸 이미지의 시리즈를 캡처하려면 out0001.bmp, out0002.bmp 등. 원하지 않는 파일을 삭제하십시오. 이것은 당신이 libvpx 지원 내장는 FFmpeg을 가정합니다

ffmpeg -i images/out%04d.bmp -y out.webm 

참고 : 마지막으로,의 WebM 파일을 인코딩.

+0

접근 방식은 괜찮습니다. 그러나 정확성의 필요성에 대한 이유는 프로세스에 개입 할 수 없다는 것입니다. 비디오 출력은 가능한 한 정확해야합니다. 귀하의 답변에 감사드립니다. –

+0

이 경우 simpleVRML의 소스 코드에 액세스 할 수 있습니까? 캡처 할 목적으로 프로그램 내에서 FFmpeg을 실행할 수 있습니다. 이렇게하면보다 정확한 캡처가 가능하고 창 좌표를 쿼리하여 유틸리티에 전달할 수 있습니다. –

+0

사실, 어떻게 할 수 있겠습니까? –