私は、ディスク上の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/video0
v4l2loopbackで作成された仮想デバイスに対応します(どちらが正しいかを確認するために使用されますv4l2-ctl --list-devices
)。