Opencv フレーム (opencv camera Api 経由で作成) を受け入れ、それらのフレームを H264 フレームにエンコードした後、それらのフレームをネットワークに送信しようとするアプリに取り組んでいます。
このプロジェクトでは、ハードウェア経由でエンコードを実行するように依頼されました。
以下のパイプラインを使用して、送信機のビットをエンコードしました。
gst-launch-1.0 appsrc name=applicationSource ! videoconvert ! video/x-raw,width=640,format=I420,height=480,framerate=15/1 ! vaapiencode_h264 ! vaapiparse_h264 config-interval=1 ! rtph264pay config-interval=1 ! gdppay ! tcpserversink host=127.0.0.1 port=5002 sync=false
私のAppsrcのキャップは次のとおりです。
video/x-raw","format""RGB","width"640,"height",G_TYPE_INT,480,
"framerate", 15, 1,
"pixel-aspect-ratio" 1, 1,
ただし、このパイプラインを実行しようとすると、次のエラーが表示されます。
libva 情報: VA-API バージョン 0.37.0
libva 情報: va_getDriverName() は 0 を返します
libva 情報: /usr/lib64/dri/i965_drv_video.so を開こうとしています
libva 情報: 初期化関数 __vaDriverInit_0_37 が見つかりました
libva 情報: va_openDriver() は 0 を返します
0:00:04.597696251 23508 0x7f724003f940 警告 GST_PADS gstpad.c:3739:gst_pad_peer_query: スティッキー イベントを送信できませんでした
0:00:05.030818739 23508 0x7f724003f940 WARN basesrc gstbasesrc.c:2933:gst_base_src_loop: エラー: 内部データ フロー エラー。
0:00:05.030864404 23508 0x7f724003f940 WARN basesrc gstbasesrc.c:2933:gst_base_src_loop:エラー: ストリーミング タスクが一時停止しました。理由はネゴシエートされていません (-4)
エラー : 内部データ フロー エラー。
0:00:05.032763231 23508 0x7f724003f940 WARN baseparse gstbaseparse.c:1155:gst_base_parse_sink_event_default: エラー: ストリームの終了前に有効なフレームが見つかりません
エラー : ストリームの終了前に有効なフレームが見つかりません
強調したように、パイプラインはネゴシエーションの問題により開始されません
Appsrc をテストしましたが、動作しているようです (データを受信しています)。
これを克服するために他のプラグインを提案できる人はいますか??
PS: カメラ v4l2src プラグインでこのパイプラインを試してみましたが、パイプラインは良好な状態で動作しているようです!
どんな助けでもいいです!
ありがとう !