ほぼ完璧な画面記録品質を得るには?


27

誰かが、変更されていないXディスプレイのコピーをファイルに送信し、その後、そのファイルを汎用ビデオファイルに変換することを提案しました。Kubuntuシステムでこれを行うには、どのコマンドを使用しますか?(編集:彼はファイルにディスプレイポートを接続することについて何か言った。)不可能な場合、高速ハードウェアに依存しない優れた品質のスクリーン録画のための私の最良の選択肢は何ですか?

背景: -f x11grabおよびいくつかのGUIプログラムでavconvを使用してみました。ただし、私が何を試みても、結果のビデオにはアーティファクト/不鮮明さがあるか、途切れています(フレームが欠落しています)。これはおそらく、CPU /メモリの制約によるものです。

目標:

  • アニメーションアプリケーションのデモを目的とするため、ビデオ品質は、セッションを画面上で直接見ることと著しく異なるものであってはなりません。
  • 最終的なビデオは、Windowsユーザーに送信してWebで使用できる一般的な形式である必要があります。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!
    • 注: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] 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()

1

rfbroxyを試しましたか?

X11-screen-sessionsを記録するために使用します。

変更がある場合、画像のみを記録するモードで使用できます。


1

これは回避策であり、ネットワーク速度またはビデオストリームを妨げる可能性のあるその他の要因に依存する可能性があるため、「ほぼ完璧」ではない可能性があります。

VNCまたはTeamviewerを使用して、ラップトップまたはデスクトップから他のマシンに接続します。WindowsまたはOSXラップトップを使用できる場合は、おそらくこれを記録できるツールがあり、teamviewerはセッション自体を記録できると思います。試してみるのは簡単で、品質が十分かどうかを判断できます。

Teamviewerはスケーリングする傾向がありますが、これが記録されたセッションでも発生するかどうかはわかりません。

VNCは圧縮もスケーリングもしないため、ラップトップ/デスクトップモニターには他のマシンよりも高い解像度が必要です。品質は良いです。使用するVNCビューアで記録できる場合があります。現在、Ubuntuを使用していますが、標準のビューアではこれを実行できません。

視聴者やウェブ上に表示するための画面記録-クリックをキャッチし、マウスをフォローしてズームインし、自分がやっていることをより明確にする他のオプションを持つことができる特別なツールがあります。それらもご覧になることをお勧めします。「スクリーンレコーディングソフトウェア」のGoogle。


0

Camtasiaを使用して、ゲームプレイビデオとオンラインビデオを記録しています。前にfrapsビデオレコーダーも使用しましたが、再生中にfpsが低下します。Camtasiaはより高いfpsを提供しますが、唯一の厄介な問題は、ここにリンクの説明を入力してくださいここにリンクの説明を入力してください。.camrecはcamtasiaの独自形式であり、Windows Media Playerやvlcなどのサードパーティプレーヤーでは再生できません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.