入力ソースからのビデオを目的のファイル フォーマットに録画するには、次のパイプラインを使用します。
- ビデオ ストリームのみを録画する場合:
gst-launch-1.0 v4l2src device=/dev/video0 io-mode=4 ! \ video/x-raw,format=NV12,width=3840,height=2160,framerate=60/1 ! \ omxh265enc qp-mode=auto gop-mode=basic gop-length=60 b-frames=0 \ target-bitrate=60000 num-slices=8 control-rate=constant prefetch-buffer=true \ low-bandwidth=false filler-data=true cpb-size=1000 initial-delay=500 ! \ queue ! video/x-h265, profile=main, alignment=au ! mpegtsmux alignment=7 name=mux ! \ filesink location="/run/media/sda/test.ts"
この例では、ライブ ソース デバイス リンクは
/dev
ディレクトリにあります。ビデオのエンコード フォーマットは H265 で、カラー フォーマットは NV12 です。ビデオ ストリームの解像度は 4k 60fps です。録画ファイルtest.ts
は、SATA ドライブに TS ファイル フォーマットで保存されます。注記:- 解像度 1080p@60 の入力ソースの場合、width と height をそれぞれ 1920 と 1080 に置き換えてください。フレーム レートを 30 に変更することもできます。
- 入力ストリームを H264 ビデオ フォーマットにエンコードする場合、上記パイプラインの h265 の代わりに h264 を使用してください。
- ビデオおよびオーディオストリームを録画/録音する場合:
入力ソースからオーディオを含むビデオを必要なファイル フォーマットに録画するには、次のパイプラインを使用します。
gst-launch-1.0 v4l2src device=/dev/video0 io-mode=4 ! \ video/x-raw, format=NV12, width=3840, height=2160, framerate=60/1 ! \ omxh265enc qp-mode=auto gop-mode=basic gop-length=60 b-frames=0 \ target-bitrate=60000 num-slices=8 control-rate=constant prefetch-buffer=true \ low-bandwidth=false filler-data=true cpb-size=1000 initial-delay=500 ! \ video/x-h265, profile=main, alignment=au ! queue ! mux. alsasrc device=hw:2,1 ! \ audio/x-raw, format=S24_32LE, rate=48000, channels=2 ! queue ! \ audioconvert ! audioresample ! faac ! aacparse ! mpegtsmux name=mux ! \ filesink location="/run/media/sda/test.ts"
この例では、ビデオとオーディオを 1 つの GStreamer パイプラインを使用してエンコードして 1 つのファイルに録画/録音できます。エンコード後のオーディオ ストリームは AAC です。オーディオ キャプチャ デバイスは hw:2,1 で、録画ファイル
test.ts
は SATA にあります。ビデオ エンコードのパイプラインは、1 つ前の例と同じです。