V4L2を使用してカメラストリームの代わりにh264ビデオファイル入力ストリームを読み取ることはできますか?

V4L2を使用してカメラストリームの代わりにh264ビデオファイル入力ストリームを読み取ることはできますか?

私は、ディスク上のh264ビデオファイルから直接読み取る方法についてCまたはC ++でV4L2を使用する明確な小さな例を見つけようとしています。

または、解析されたフルフレームh264チャンク/パケットをオープンV4L2デコードデバイスにどのように渡すことができますか?

これが可能か、実際のケースがあるかを知っている人はいますか?

(しかし私はgstreamer、ffmpeg / avcodecについて知っていますが、v4l2ではこの問題を解決しようとしています。)

乾杯!

答え1

あなたが探しているのは、基本的に/dev/videoXあなたが使用しているツールにカメラとして現れる仮想デバイスを提供するv4l2loopbackデバイスだと思います。

v4l2loopback-dkmsこれを使用するには、ディストリビューションパッケージをインストールし、以下を使用してモジュールをロードする必要があります。modprobe v4l2loopback

この仮想カメラでビデオをストリーミングするには: ffmpeg -re -i input.mp4 -map 0:v -f v4l2 /dev/video0ここで、input.mp4入力ビデオファイルは/dev/video0v4l2loopbackで作成された仮想デバイスに対応します(どちらが正しいかを確認するために使用されますv4l2-ctl --list-devices)。

関連情報