거의 완벽한 화면 녹화 품질을 얻는 방법은 무엇입니까?

거의 완벽한 화면 녹화 품질을 얻는 방법은 무엇입니까?

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

배경:-f x11grab 및 일부 GUI 프로그램과 함께 avconv를 사용해 보았습니다. 그러나 무엇을 시도해도 결과 비디오에 아티팩트/흐림이 있거나 불안정합니다(프레임 삭제). 이는 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에 저장하여 도움이 되는지 알아보는 중입니다.
  • Istanbul 및 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!)
    • avconv -formats참고: h264는 출력에 다음과 같이 나열됩니다.DE h264 raw H.264 video format

답변1

하드 드라이브에서 허용하는 경우 다음을 시도해 볼 수 있습니다.

먼저 압축되지 않은 파일을 작성합니다.

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

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

나중에 언제든지 압축할 수 있습니다.

ffmpeg -i grab.avi grab.mkv

물론 압축을 변경하고 코덱을 선택하는 등의 작업도 가능합니다.

답변2

나는 다음을 통해 성공을 거두었습니다.

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 편집] Gnome Shell 및 Wayland 업데이트:

#!/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()

답변3

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

VNC 또는 Teamviewer를 사용하고 노트북이나 데스크탑에서 다른 컴퓨터에 연결하세요. Windows 또는 OSX 노트북을 사용한다면 이를 기록할 수 있는 도구가 있을 것이며, 팀뷰어가 세션 자체를 기록할 수 있다고 생각합니다. 시도해 보기 쉬우며 품질이 충분히 좋은지 결정할 수 있습니다.

Teamviewer는 확장되는 경향이 있지만 녹화된 세션에서도 그런 일이 발생하는지 모르겠습니다.

VNC는 압축하거나 확장하지 않으며 노트북/데스크탑 모니터는 다른 컴퓨터보다 더 높은 해상도가 필요합니다. 양질. 사용 중인 VNC 뷰어가 녹화할 수 있을 수도 있습니다. 저는 지금 Ubuntu를 사용하고 있는데 표준 뷰어에서는 이 작업을 수행할 수 없습니다.

청중이나 웹에 표시하기 위한 화면 녹화 - 클릭을 캡처하고, 마우스 오버를 따라가고 확대/축소하는 전용 도구가 있으며, 수행 중인 작업에 대한 보다 명확한 그림을 제공하는 기타 옵션이 있습니다. 그것들도 확인해 보시길 권합니다. Google "화면 녹화 소프트웨어".

답변4

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

관련 정보