パーティーへの遅刻をお許しください。これは、最近のロスレススクリーン録画の時点で私が取り組んできたものです。
もともと私はOBSを使用して、主にスクリーンレコーディングのアップロード/ YouTubeへのキャストのために、2019年を通じて画面を記録していましたが、最近、ffmpegを使用して実験を開始し、マイクでデスクトップオーディオの録音をまだテストしていません。
画面を記録するためのバニラffmpeg設定から始めましたが、ショットカットなどのNLE / NLAエディターで記録を編集するときに、記録のストックGOP設定が非常に痛いので、ffmpeg wikiの画面キャプチャードキュメントに戻って読み直しました、およびcrfが0に設定され-crf 0
ている限り、x264コーデックを使用して画面の録画をロスレスでキャプチャできることに気付きました。これは、ffmpegがx264コーデックを使用するため、録画に非可逆圧縮が適用されないことを意味します。また、wiki はffmpegコマンドの設定と組み合わせて使用することを提案しています。昨夜これらの設定を試しましたが、画質/ファイルサイズは素晴らしいです。-preset ultrafast
-crf 0
画面4K 3840 x 2160モニターを30 fpsで録画しましたが、ビットレートは完全に管理可能でした。10MB /秒以上になったとは思いません。1分間の記録は約48MBでした。これは、記録をアーカイブするのに完全に許容できるファイルサイズです。
注意事項
- コマンドラインの使用を好まない場合は、明らかにこれはおそらく役に立たないでしょう。私が試したGUIのほとんどは古くなっているため、ffmpegとのインターフェースにGUIを使用することは現実的ではないことがわかりました。
- また、現在、単一のffmpegプロセス/コマンドでオーディオマイクと画面を同時に録音することに問題があるため、コマンドを2つの個別のコマンドに分割/処理し、同時に開始して、オーディオ/ビデオの同期を維持する必要があります。
- 私はmacOS 10.13.6を実行していますが、Nvidia Webドライバーを使用しているので、画面とマイクを同時に記録する単一のffmpegプロセス/コマンドが失敗する問題が発生する可能性があります。問題が何であるかは完全にはわかりません。🤷♂️
- ロスレスコーデックでオーディオを録音するための解決策はまだ考え出されていませんが、それは間違いなく次の研究課題です
- また、私はこの新しい手法を使用して、以前のすべての録音ffmpegとOBSを変換し、アーカイブ用に保存したいと考えています。
記録をアニメーションGIFに変換するとのことですが、次のプロジェクトを使用して小さな画面の記録をGIFに変換しましたが、ターミナルベースの記録でのみ機能し、それを使用して快適な結果が得られました。さまざまなOSでの使用をかなり簡単にするDockerコンテナーさえあります。
私がやった実験をアニメーションGIFに変換し、iPhoneの記録に私はgithubのは、アップロード動画は、このようなファイルをサポートしていないと考えているので、githubのにGIFをアップロードするために有用であったが、バックのffmpegを使用してのMOV MKVやMP4を。
また、QTRLEコーデックでクイック検索を行ったところ、MP4コンテナ形式と互換性がないようです。そのため、MOV以外の何かを使用する必要がある場合は、別のコーデックを使用してみてください。
⚠️以下のコマンドは、同時にインストールする必要があります。
concurrently --kill-others \
"ffmpeg -f avfoundation -capture_cursor 1 \
-capture_mouse_clicks 1 \
-framerate 30
-i "1:" -c:v libx264 -crf 0 -preset ultrafast \
lossless-screen-rec.mkv 2>/dev/null" \
"ffmpeg -f avfoundation -i ":3" \
-acodec alac \
lossless-mic-.m4a 2>/dev/null"
上記のコマンドは、x264を使用してコンピューター画面をロスレスでキャプチャし、alacを使用してマイク入力をロスレスでキャプチャします。どちらの形式も、ショットカットなどのNLA / NLEエディターでの編集に適しています。
⚠️ ":3"
そして1:
macOSを実行しているシステムごとに異なります
macOSでキャプチャデバイスのリストを取得するには
ffmpeg -f avfoundation -list_devices true -i ""
とにかく、これは多くの情報であることはわかっていますが、ここ数週間はほぼ毎日ffmpegを使用しているので、この情報を共有したいと思ったので、学んだことを共有したいと思いました。将来の私のためにこの情報を残してください👴🏻