私はFFmpegのX11grabモジュールを使ってスクリーンキャストを録画することを実験してきました。私は、/ vエンコーディングは多くの細かい細部まで複雑なプロセスであると理解していますが、私は学ぶために最善を尽くしています。FFmpegスクリーンキャスト録画:どのコーデックを使用するのですか?
ビデオストリームの記録を「軽量」にしたいと思っています。これは、ストリームが記録されている間、システムにできるだけ負荷をかけません。私は、2つのオーディオストリームをpacatとsoxで別々に記録します。その後、すべてがフィルタリング、正規化、エンコードされ、Matroskaコンテナに結合されます。
現時点では、ffmpegにrawvideoストリームを記録してx264のyuv4 demuxerに供給させています。私は前にffv1とストレートx264の録音を実験しました。私のシステムでは、最終的なストリームに必要な設定でx264のリアルタイムエンコードを処理できないため、録画が完了したら別途再圧縮する必要があります。私はffv1が私に恐ろしいフレームの落下を与え、yuv4もあまりにも少ないことを見出しました。私はSATA3のキャビアブラックに座っていても記録されたデータを保持するために使用されていても、これはハードドライブの速度によるものだと思われます。
問題は、どのビデオコーデックをどのように見なければならないのですか? x264ですぐに録音し、後で「より良い」x264に再圧縮しますか?生の動画を圧縮してから圧縮しますか?私が経験しているフレームドロップなどの問題点を突き止めるにはどうすればいいですか?
EDIT:これは私が現在使用しているffmpegラインです。
ffmpeg -v warning -f x11grab -s 1920x1080 -r 30000/1001 -i :0.0\
-vcodec rawvideo -pix_fmt yuv420p -s 1280x720\
-threads 0\
recvideo.y4m
スクリーンキャストの解像度は? –
私は1080pで画面全体を記録し、その場で720pにスケーリングします。 – mkaito
https://trac.ffmpeg.org/wiki/StreamingGuideには、使用するコーデックがいくつか記載されています – rogerdpack