누군가 수정되지 않은 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 그런 다음 ffmpeg -i grab.avi -sameq -vcodec mpeg4 grab.mp4를 사용하여 mp4로 변환합니다.
    • 화질은 좋지만 테스트 시스템에서는 컴퓨터가 느립니다. 더 빠른 대상 시스템에서는 지연되지 않지만 프레임이 분명히 건너 뛰어 동영상이 부드럽 지 않게 만듭니다.
    • 그래도 그랩을 저장하는 방법을 찾으려고합니다. avi 파일을 SHM에 전송하여 도움이되는지 확인하십시오.
  • Istanbul 및 RecordMyDesktop GUI 레코더 사용
  • 간단한 명령 : avconv -f x11grab -s xga -r 25 -i :0.0 simple.mpg avconv 버전 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가 나열됩니다. 출력 : DE h264 raw H.264 video format

Answer

HDD가 허용하는 경우 다음과 같이 시도 할 수 있습니다.

압축되지 않은 파일을 먼저 작성 :

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

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

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

ffmpeg -i grab.avi grab.mkv 

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

댓글

  • 참조 : unix.stackexchange.com/a/120001/26227
  • ubuntu 18.04는 ' 작동하지 않습니다. 실패 : : 0.0 : 잘못된 인수
  • @ user1325696, 꽤 잘 작동합니다. 예 : ffmpeg -f x11grab -s 2560x1080 -r 30 -i :0.0 -qscale 0 -vcodec huffyuv grab.avi

답변

다음을 통해 성공했습니다.

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를 제안합니다.

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

p>

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

[edit 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() 

댓글

  • 방법 화면 크기를 결정합니까?

답변

이것은 해결 방법이며 아마도 “거의 완벽”하지는 않습니다. 네트워크 속도 또는 비디오 스트림을 방해 할 수있는 기타 요인에 따라 달라질 수 있습니다.

VNC 또는 Teamviewer를 사용하고 노트북 또는 데스크톱에서 다른 컴퓨터로 연결하십시오. Windows 또는 OSX 노트북을 사용할 수있는 경우 아마도 이것을 기록 할 수있는 도구가있을 것입니다. 그리고 저는 팀 뷰어가 세션 자체를 기록 할 수 있다고 믿습니다. 시도하기 쉽고 품질이 충분한 지 결정할 수 있습니다.

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

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

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

답변

를 사용해 보셨습니까? rfbroxy ?

X11 화면 세션을 녹화하는 데 사용합니다.

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

−-type=WHAT WHAT = 화면 은 맨 페이지에 따르면 기본값도 있습니다.

댓글

  • 그 '이 흥미 롭습니다. 어떻게하나요?
  • @GunarGessner가 기본 동작이어야합니다. 다른 방법은 마우스 / 키보드 이벤트에 반응하는 것입니다. 화면에 시계가 있고 해당 시계 만 변경 될 때 사진을 찍고 싶지 않은 경우이 방법이 더 좋을 수 있습니다 …

답변

Camtasia를 사용하여 게임 플레이 동영상과 온라인 동영상을 녹화하고 있습니다. 나는 또한 전에 fraps 비디오 레코더를 사용했지만 재생 중에 fps가 떨어졌습니다. Camtasia는 더 높은 fps를 제공하지만 유일한 문제는 여기에 링크 설명을 입력

여기에 링크 설명을 입력하세요 . .camrec는 camtasia의 독점 형식이며 Windows Media Player 및 vlc와 같은 타사 플레이어에서 재생할 수 없습니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다