거의 완벽한 화면 녹화 품질을 얻는 방법?


27

누군가 수정되지 않은 X 디스플레이의 사본을 파일로 보내고 나중에 해당 파일을 범용 비디오 파일로 변환하도록 제안했습니다. 쿠분투 시스템에서 어떤 명령을 사용합니까? (편집 : 그는 파일에 디스플레이 포트를 연결하는 것에 대해 말했다.) 가능하지 않다면 빠른 하드웨어에 의존하지 않는 우수한 품질의 화면 녹화를위한 최선의 옵션은 무엇입니까?

배경 : avconv와 -f x11grab 및 일부 GUI 프로그램을 사용해 보았습니다. 그러나 내가 무엇을 시도하든 결과 비디오에는 아티팩트 / 흐릿함이 있거나 고르지 않습니다 (프레임 누락). 아마도 CPU / 메모리 제한 때문일 수 있습니다.

목표 :

  • 애니메이션 응용 프로그램을 시연하는 것이 목적이므로 비디오 품질이 화면에서 직접 세션을 보는 것과 눈에 띄게 다르지 않아야합니다.
  • 최종 비디오는 Windows 사용자에게 보내고 웹에서 사용할 수있는 공통 형식이어야합니다. H.264 MP4가 작동해야한다고 생각합니다.
  • 솔루션은 많은 사전 지식을 추정해서는 안됩니다. 명령 줄과 기본 Linux 명령에 익숙하지만 여전히 Linux를 배우고 있으며 비디오 코덱에 대해 많이 알지 못합니다.

내가 이미 시도한 것 :

  • 지금까지 가장 좋은 명령 : ffmpeg -f x11grab -s xga -r 30 -i :0.0 -qscale 0.1 -vcodec huffyuv grab.avi을 사용하여 mp4로 변환하십시오 ffmpeg -i grab.avi -sameq -vcodec mpeg4 grab.mp4.
    • 화질은 훌륭하지만 테스트 시스템에서는 컴퓨터보다 느립니다. 빠른 대상 시스템에서는 지연되지 않지만 프레임을 건너 뛰어 비디오가 매우 부드럽 지 않습니다 .
    • 그래도 grab.avi 파일을 SHM에 저장하여 도움이되는지 확인하는 중입니다.
  • 이스탄불 및 RecordMyDesktop GUI 레코더 사용
  • 간단한 명령 : avconv -f x11grab -s xga -r 25 -i :0.0 simple.mpgavconv 버전 0.8.3-4 : 0.8.3-0ubuntu0.12.04.1 사용
  • 추가 -codec:copy(실패합니다 Requested output format 'x11grab' is not a suitable output format)
  • 추가 -same_quant(품질은 좋아 지지만 많은 프레임이 없거나 고르지 않음)
  • 추가 -vpre lossless_ultrafast(실패 : Unrecognized option 'vpre', Failed to set value 'lossless_ultrafast' for option 'vpre')
  • 다양한 값 추가 -qscale
  • 다양한 값 추가 -b
  • 추가 -vcodec h264(반복 출력 : Error while decoding stream #0:0, [h264 @ 0x8300980] no frame!)
    • 참고 : h264는 다음과 같이 avconv -formats출력에 나열 됩니다.DE h264 raw H.264 video format

답변:


24

HDD가 허용하는 경우 다음과 같이하면됩니다.

먼저 압축되지 않은 파일을 작성하십시오.

ffmpeg -f x11grab -s SZ -r 30 -i :0.0 -qscale 0 -vcodec huffyuv grab.avi

여기는 SZ디스플레이 크기입니다 (예 : 1920x1080).

그 후 언제든지 원하는 시간에 압축 할 수 있습니다.

ffmpeg -i grab.avi grab.mkv

물론 압축을 변경하고 코덱을 선택할 수 있습니다.



6

나는 성공했다 :

ffmpeg -f x11grab -video_size 1920x1080 -framerate 30 -i :1 \
       -vcodec libx264 -preset ultrafast -qp 0 -pix_fmt yuv444p \
       video.mkv

키 포인트:

  • -qp 0 : x264 무손실 모드
  • 사전 설정 초고속 : 최소 CPU 사용량, 큰 크기
  • -pix_fmt yuv444p : 기본값이지만 ffmpeg는 yuv420p를 제안합니다.

힌트 : 캡처 화면 및 웹캠 오버레이 :

ffmpeg -f x11grab -thread_queue_size 64 -video_size 1920x1080 -framerate 30 -i :1 \
       -f v4l2 -thread_queue_size 64 -video_size 320x180 -framerate 30 -i /dev/video0 \
       -filter_complex 'overlay=main_w-overlay_w:main_h-overlay_h:format=yuv444' \
       -vcodec libx264 -preset ultrafast -qp 0 -pix_fmt yuv444p \
       video.mkv

https://trac.ffmpeg.org/wiki/Capture/Desktop

[편집 20180418] 그놈 셸 및 웨이 랜드 업데이트 :

#!/usr/bin/env python3
from dbus import SessionBus, Interface
from os import getcwd, path
from sys import argv

BUS_NAME = 'org.gnome.Shell.Screencast'
PATH_NAME = '/org/gnome/Shell/Screencast'
INTERFACE_NAME = BUS_NAME
PIPELINE='x264enc pass=qual quantizer=0 speed-preset=ultrafast ! queue ! matroskamux'

if path.isabs(argv[1]):
    name = argv[1]
else:
    name = path.join(getcwd(), argv[1])

bus = SessionBus()
screen_cast = bus.get_object(BUS_NAME, PATH_NAME)
screen_cast = Interface(screen_cast, INTERFACE_NAME)

ret, name = screen_cast.Screencast(name, {'pipeline': PIPELINE})

if not ret:
    print('Error starting screencast.')
    raise SystemExit(1)

try:
    i = input()
except (EOFError, KeyboardInterrupt):
    pass
finally:
    screen_cast.StopScreencast()

1

rfbroxy 를 사용해 보셨습니까 ?

X11 스크린 세션을 기록하는 데 사용합니다.

변경이있는 경우 사진 만 기록하는 모드에서 사용할 수 있습니다.


1

이는 해결 방법이며, 네트워크 속도 또는 비디오 스트림을 방해 할 수있는 기타 요인에 따라 달라질 수 있으므로 "완벽하지"않을 수 있습니다.

VNC 또는 Teamviewer를 사용하여 랩톱 또는 데스크탑에서 다른 컴퓨터로 연결하십시오. 사용 가능한 Windows 또는 OSX 랩톱이있는 경우이를 기록 할 수있는 도구가있을 수 있으며 팀 뷰어가 세션 자체를 기록 할 수 있다고 생각합니다. 시도하기 쉽고 품질이 충분한 지 결정할 수 있습니다.

Teamviewer는 확장하는 경향이 있지만, 이것이 기록 된 세션에서도 발생하는지 모르겠습니다.

VNC는 압축 또는 확장이 불가능하며 랩탑 / 데스크탑 모니터는 다른 컴퓨터보다 높은 해상도를 요구합니다. 품질이 좋습니다. 사용하는 VNC 뷰어가 기록 할 수 있습니다. 나는 지금 우분투에 있는데 표준 뷰어는 이것을 할 수 없습니다.

청중 또는 웹에 표시하기위한 화면 녹화-이를 위해 클릭을 포착하고 마우스를 따라 확대 할 수있는 특수 도구가 있으며 수행중인 작업을보다 명확하게하는 다른 옵션이 있습니다. 나는 당신도 이것들을 살펴볼 것을 제안합니다. "스크린 녹화 소프트웨어"용 Google.


0

Camtasia를 사용하여 게임 플레이 비디오와 온라인 비디오를 녹화하고 있습니다. 또한 플랩 스 비디오 레코더를 사용했지만 재생 중에는 fps가 떨어졌습니다. Camtasia는 더 높은 fps를 제공하지만 유일한 문제는 출력 링크 .CAMREC를 avi로 변환해야 할 때마다 여기 에 링크 설명을 입력 하십시오 여기 에 링크 설명을 입력하십시오 . .camrec은 독점적 인 형식의 camtasia이며 Windows Media Player 및 vlc와 같은 타사 플레이어에서는 재생할 수 없습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.