私はLinuxでゲームの画面録画にavconvを使用しています。 (はい、申し訳ありませんが、私はそのうちの1つですが、直接プレイするよりもスクリプトに興味があります。)最近、ハードドライブが故障して保証を待っている間、私はラップトップに古いOneを使用しています。
問題は、このHDが以前のバージョンよりはるかに遅いので録画できないことをすでに知っていました。
それから私はtmpfs / ramfsを覚えていて、これが私が問題を解決しようとした方法です。
1) tmpfs をマウントします。
$ sudo mount -t tmpfs -o size=2048M captura ~/Videos/capture/memoria/
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 286G 63G 209G 24% /
...
captura 2.0G 62M 2.0G 3% /home/rarlei/Videos/capture/memoria
2) ゲームを開始します。 (Minecraft、メモリをたくさん占めていますか?)
3)録画開始:(avconv $thousands_of_parameters -v:c libx264 -preset fast memoria/video.mp4
ビデオのみ)
数回再生した後、私が持っているものを見るために録音を中断しましたが、私が見たのはハードドライブに録音したものと変わりませんでした。
私は8GBのかなり良いRAMを持っています(1.2ghzまたはそれに似たもの、Linuxでそれを見る方法がわかりません)
私は特定のグラフィックカードを使用せず、通常のIntelグラフィックのみを使用していますが、以前のハードドライブの録画には影響しませんでした。
tmpfsが速いとは思わないのですか? Minecraftは影響を受けますか?エンコーディングはこれに影響しますか?どんなアイデアがありますか?
修正する
わからないと思います。私がやっていることは、2つのビデオを比較することです。 1つはハードドライブパーティションに書き込まれ、もう1つはtmpfs(メモリ?)に書き込まれます。どちらも同じコーデックを使用し、両方ともX11ディスプレイからインポートされます。予想される結果は、tmpfsビデオがHDDよりも待ち時間がはるかに少ないことです(再生時の遅延はありません)。その結果、両方のビデオはほぼ同じ量のレイテンシを表示します。
以前のハードドライブではこのような遅延は発生しなかったため、プロセッサ/コーデックに関連するのではなく、ストレージに関する問題であることがわかりました。
アップデート - 解決(?)
わかると、エンコード中はメモリ消費よりも多くのことが起こるようです(各フレームをメモリにロードしてそこで処理してから同じメモリの他の部分に書き換える必要があるため、今は明らかです)。メモリ内ですべての操作を実行すると、エンコード中に遅延/フレーム劣化が発生します。
rawvideoを使用して録画しようとしましたが、再びmp4で再エンコードした後にビデオが遅れていませんでした。残念ながら、10秒ごとに1GBがかかり、メモリが不足しています。
生のビデオをハードドライブに直接録画する方法はなく、録画を中止するまでゲームが遅くなります。 :(
とにかくありがとうございます:)
答え1
より高い優先順位で avconv を実行してみることができます。ただし、これによりゲームの速度が遅くなる可能性があります。
nice n=-10 aconv ...
問題は、aconvが必要なタスクを実行するのに十分なプロセッサ時間を取得できないためであると仮定します。それが何であれ、私の意見によれば、ディスクに十分に速く書き込むことができないからではありません。
man nice
以前に聞いたことがないことを確認してください。