|
모르는 사람들을 위해 스크린 때때로 오디오 나레이션을 포함하는 컴퓨터 화면 출력의 디지털 녹음입니다.
En Linux, 여러 도구 할 스크린 캐스팅. 그러나 그렇게하는 것을 선호하는 사람들은 최소한의 자원 소비 그들은이 기사를 읽는 것을 멈출 수 없습니다. |
두 가지 도구 (화면을 캡처하는 ffmpeg와 기록 할 창의 좌표와 크기를 얻는 xwininfo)를 사용하여 최소한의 리소스를 사용하여 스크린 캐스트를 만들고 최적의 결과를 얻었습니다.
스크린 캐스트를 시작하는 스크립트
#! / bin / bash
# 선택한 창의 좌표와 크기를 가져옵니다
# 이것은 창 장식을 제외합니다.
xywh 설정 해제
eval $ (xwininfo -frame |
sed -n -e "s / ^ + 절대 왼쪽 상단 X : + ([0-9] +). * / x = 1 / p"
-e "s / ^ + 절대 왼쪽 상단 Y : + ([0-9] +). * / y = 1 / p"
-e "s / ^ + 폭 : + ([0-9] +). * / w = 1 / p"
-e "s / ^ + 높이 : + ([0-9] +). * / h = 1 / p")
$ w = $ w + $ w % 2 # 너비가 2의 배수 인 경우, 그렇지 않으면 ffmpeg가 불평합니다.
WIN_XY = $ x ","$ y # XY 좌표 형식
WIN_GEO = $ w "x"$ h # 형식 창 크기
# notify-send는 스크린 캐스트 시작을 알리는 메시지를 표시합니다.
# 구성에 맞는 매개 변수로 ffmpeg를 실행합니다.
notify-send "스크린 캐스트 시작 중 ..."&& ffmpeg -f alsa -i hw : 0 -f x11grab -r 25 -s $ WIN_GEO -i : 0.0 + $ WIN_XY -acodec libmp3lame -async 1 -vcodec libx264 -preset ultrafast- crf 0-스레드 0 save.mp4
이 스크립트가 수행하는 모든 것을 완전히 이해할 필요는 없습니다. 댓글을 따르는 것만으로도 충분합니다. 그러나 ffmpeg가 실행되는 줄에서 일부 매개 변수를 변경하여 시스템 구성에 맞게 조정해야 할 가능성이 매우 높습니다.
오디오 아키텍처
1) OSS를 사용하는 경우 -f alsa -i hw : 0을 -f oss -i / dev / dsp로 대체하십시오.
2) ALSA 만 사용하는 경우 스크립트에 포함 된 매개 변수 (-f alsa -i hw : 0)를 사용해야합니다. hw 이후의 번호를 확인하려면 aplay -l을 실행하고 적절한 사운드 카드 번호를 선택합니다.
3) Pulse Audio를 사용하는 경우 (Ubuntu 및 파생 제품에서 사용) -f alsa -ac 1 -i pulse 매개 변수를 사용하십시오.
FPS
-r 25는 녹화하려는 fps (초당 프레임 또는 초당 프레임)를 나타냅니다. 25는 좋은 선택입니다.
오디오, 비디오 및 동기화 코덱
-acodec libmp3lame는 오디오 코덱입니다. 나는 그것을 mp3로 녹음하기로 결정했습니다. 다른 것을 사용할 수 있습니다.
-async 1은 오디오와 비디오의 동기화를 허용합니다.
-vcodec libx264 -preset ultrafast -crf 0 -threads 0, 사용할 비디오 코덱이 x264이고 사전 설정이 초고속 (빠름, 느림 등이 있음)임을 ffmpeg에 알립니다. 그렇지 않으면 올바르게 녹화되지 않습니다. 원하는 양의 fps. -crf 0 매개 변수는 압축 수준을 나타냅니다 (압축이 낮을수록 압축이 낮음). 마지막으로 스레드 0은 사용할 스레드 수를 나타내며 0을 전달하면 ffmpeg가 자동으로 계산합니다. 오디오 설정과 마찬가지로 다른 옵션을 선택할 수 있습니다.
이 모든 설정은 저에게 최상의 결과를 제공 한 설정이었습니다. 비교적 작은 파일, 우수한 비디오 품질, 동기화 된 오디오 및 지연 없음. 그러나 다른 사람들을 발견하기 위해 ffmpeg 문서를 살펴볼 것을 권장합니다.
스크린 캐스트를 종료하는 스크립트
#! / bin / bash
notify-send "스크린 캐스트 종료 중 ..."&& killall ffmpeg
에프캐스트
스크립트를 작성하기위한 정보를 찾아 보니 누군가 나와 매우 비슷한 아이디어가 있다는 것을 발견했습니다. Ffcast는 동일한 도구 (ffmpeg 및 xwininfo)를 사용하는 스크립트입니다. 일부 사람들은이 스크립트를 사용하는 것이 더 편리하다고 생각할 수 있기 때문에 언급했습니다.
Arch 및 파생 상품에서 터미널을 열고 실행했습니다.
야우 르트 -S ffcast
나머지는 다음에서 다운로드 할 수 있습니다. 여기에.
끝으로…
HOME 폴더에 저장된 스크립트를 만들고 저장 한 후에는 실행 권한을 부여해야합니다. start_screencast 및 finish_screencast가 호출되었다고 가정하고 터미널에서 다음 명령을 실행합니다.
chmod + x start_screencast
chmox + x terminate_screencast
마지막으로 각 스크립트를 사용자에게 편한 2 개의 바로 가기 (바로 가기)에 할당하는 것만 남아 있습니다. 이렇게하면 선택한 키 조합을 누를 때 스크립트가 실행됩니다.