나는 그런 것들을 사용하고 있습니다 :
avconv -f x11grab -s 1024x768 -r 24 -i 0:0 -deadline realtime -b 5000000 -minrate 200000 -maxrate 40000000 recording-filename-000.webm
어디:
-f x11grab
-입력의 화면 캡처 "형식"을 시행합니다.
-s 1024x768
입력 파일의 해상도 (일명 캡처 영역)입니다. 예를 들어 데스크톱 해상도와 같습니다. 이보다 작 으면 기록 영역이 왼쪽과 위쪽에 있습니다. 이 예제에서는 1024x768 레코딩 영역을 사용했습니다.
-r 24
-프레임 속도. 기본적으로 실제 동영상에서 부드러운 녹화 사진을 제공하기 위해 23 ~ 30 FPS가 사용됩니다. 그러나 스크린 캐스트의 경우 낮은 비트 전송률에서 더 나은 화질을 얻으려면이 크기를 줄여도됩니다. 24를 사용하여 게임 화면을 캡처했습니다.
-i 0:0
소스로 디스플레이 0 : 0을 사용하는 힌트입니다 (장치는 xorg 표기법으로 표시됨). 모니터와 기본 Xorg 설정이 하나만있는 경우 대부분 0 : 0이 정상입니다.
-deadline realtime
-libvpx에 대한 힌트입니다. 라이브 캡처를 원합니다. 우리는 실시간 성능을 원합니다. 따라서 libvpx는 VP8을 실시간으로 인코딩하는 것이 가장 좋습니다. 그렇게하려면 속도와 품질을 다소 교환합니다. 주어진 비트 전송률 품질은 비 실시간 방식보다 약간 나쁩니다. 그러나 인코딩 속도는 급상승 할 것입니다. 따라서 내 하드웨어에서는 프레임을 삭제하지 않고도 강렬한 장면에서 1024x768 @ 24FPS를 처리 할 수 있습니다 (강력한 CPU 권장). 이 예에서는 좋은 FPS와 상당히 넓은 캡처 영역에서 적절한 품질의 라이브 캡처를 원했습니다. 따라서 코덱 별 CPU 사용량이 문제가 될 수 있습니다. 이것이 좋은 결과를 위해이 힌트가 실제로 필요한 이유입니다.
-b 5000000
비트 / 초 단위의 대상 비트 전송률 나는 5Mbits를 사용하여 매우 강렬한 장면을 거의 또는 전혀 잘 찍지 못했습니다. 코덱은 비디오의 평균 비트 전송 속도를이 값에 가깝게 유지하려고합니다. 이 값이 낮을수록 품질이 떨어지고 파일이 작아집니다. 비트 레이트를 실험하여 특정 용도에 적합한 비트 레이트를 알 수 있습니다. 비디오 공유 서비스는 오버 슈트하면 비디오를 다운 컨버전합니다. 자체 서버를 사용하려는 경우 트래픽을 관리하는 것은 사용자의 책임입니다. 언더 슈트하면 화질이 떨어집니다. 자신에게 가장 적합한 것을 얻으려면 값을 자유롭게 변경하십시오. 5Mbits는 사진이 너무 압축 된 것을 쉽게 볼 수없는 게임에서 강렬한 장면을 눈에 띄게 생생하게 캡처하기위한 것입니다. 스틸 응용 프로그램을 캡처하려면 기본적으로 그보다 훨씬 적게 필요합니다.
-minrate
200000-코덱에 허용되는 최소 비트 전송률입니다. 캡처하려는 대상의 특성에 따라 때때로 비트 전송률을 강제로 설정하여 무엇이든 상관없이 합리적으로 보이는 pictire를 유지할 수 있습니다. 때로는 코덱 휴리스틱이 원하는 값보다 훨씬 낮은 비트 전송률을 줄여서 일부 장면에서 나쁜 그림을 제공 할 수 있습니다. 이 옵션을 사용하면 코덱에서 장면이 단순하고 비트 전송률이 떨어질 수 있다고 생각하더라도 최소 비트 전송률을 유지하도록 할 수 있습니다. 이 매개 변수의 값이 크면 코덱에서 낮은 비트 전송률을 사용하지 못하게하여 파일 크기가 커질 수 있습니다.
-maxrate 40000000
-이 값은 강렬한 장면에서 최대 버스트 비트 전송률을 제어합니다. 일부 장면에서 적절한 품질을 유지하기 위해서는 더 빠른 속도가 필수적이라고 생각 될 때 코덱이 원하는 평균보다 훨씬 더 높아질 수 있도록 실제로 높은 값을 사용했습니다. 모든 조건에서보기 좋은 그림을 얻으려면이 값을 충분히 높게 설정하는 것이 좋습니다 (40Mbits는 BlueRay와 같은 속도이며 트릭을 수행합니다). 반면, 자체 서버를 사용하여 스트리밍하려면 강렬한 장면에서 일부 화질을 희생하여이 값을 줄여야합니다. 다른 서버는 원하는 버스트 비트 전송률을 처리하지 못해 사용자에게 실시간으로 서버를 제공 할 수 없습니다. 그런 다음 플레이어는 버퍼 언더런 (성가신)에 직면하게됩니다. 비디오 공유 서비스는 자체적으로주의를 기울이고 일반적으로 화질을 낮추면서 매개 변수를 낮추기 위해 비디오를 다운 컨버트합니다.
recording-filename-000.webm
-출력 파일 이름입니다. .webm 확장자를 사용하는 경우 ffmpeg / avconv는 WEBM을 원한다는 것을 이해할 정도로 똑똑합니다. avconv는 파일 이름에서 원하는 형식을 추측합니다. 따라서 .WEBM 파일은 WEBM 내부에 있습니다.
즉,이 명령은 화면 녹화를 webm 파일로 직접 수행합니다. 추가 변환이 필요하지 않으며 libvpx
최대한 빠른 속도로 힌트가 제공됩니다. 사운드 입력 사양이 없으므로 사운드가 없습니다. 원하는 것일 수도 있고 아닐 수도 있습니다. 사운드의 경우 사운드 스트림의 입력 소스도 지정해야합니다.
추신 : 이것은 약간 복잡해 보이지만 하루가 끝나면 한 가지 크기가 모든 것에 맞지 않는다는 것을 알 수 있습니다. 따라서 모든 상황에서 멋진 그림을 얻으려면 코덱에 대한 핸들을 사용하고 조정하고 싶을 수 있습니다. Ffmpeg는 필요한 모든 핸들을 제공합니다. 비디오 변환 및 인코딩의 강력한 무기입니다. 따라서이 예제는 어느 정도 고급 인코딩을 수행하려는 사람들에게 좋은 시작점이며 실제로보기 흉한 결과를 얻기 위해 약간의 실험을 할 준비가되어 있습니다.