Gstreaming - dua kamera web lebih dari tcp

0

Saya mencoba melakukan streaming dua web cam pada satu perintah gstreaming, saya dapat memulai satu kamera dengan:

gst-launch-1.0 v4l2src device=/dev/video0 ! videoconvert ! videoscale ! video/x-raw,width=320,height=240  ! vp8enc ! webmmux ! tcpserversink port=8080

Idenya adalah untuk memulai kamera lain tetapi pada jalur yang berbeda , bisa IP atau PORT, tetapi menurut standar saya hanya mencoba port yang berbeda:

gst-launch-1.0 tee name=stream v4l2src device=/dev/video0 ! video/x-raw,width=640,height=480,framerate=12/1 ! vp8enc ! webmmux ! tcpserversink port=8080 stream. v4l2src device=/dev/video2 ! video/x-raw,width=640,height=480,framerate=12/1 ! vp8enc ! webmmux ! tcpserversink port=8081 stream.

Diperlukan output webm dan muxer

Tetapi saya selalu mendapatkan kesalahan ini: "Aliran" referensi tak terduga diabaikan

Mengikuti pola ini saya temukan di sini

gst-launch-1.0 tee name=stream v4l2src device=/dev/video0 ! image/jpeg,width=800,height=600,framerate=30/1 ! jpegparse ! jpegdec ! xvimagesink stream. v4l2src device=/dev/video1 ! image/jpeg,width=800,height=600,framerate=30/1 ! jpegparse ! jpegdec ! xvimagesink stream.
Bruno Cerk
sumber

Jawaban:

0

Saya akan merekomendasikan membaca sintaks peluncuran-gst ( https://gstreamer.freedesktop.org/documentation/tools/gst-launch.html ) untuk mendapatkan pemahaman yang lebih baik tentang kesalahan di sana. Anda membuat elemen dan memberinya nama: aliran. Kemudian Anda menggunakan referensi ini di seluruh deskripsi pipa Anda.

Mari kita lihat bagian ini:

jpegdec ! xvimagesink stream. v4l2src device=/dev/video1 ! image/jpeg,width=800,height=600,framerate=30/1

Anda menautkan jpegdec ke xvimagesink dan kemudian Anda memiliki referensi untuk streaming di sana. Kemudian Anda membuat v4l2src dan menautkan ke capsfilter. Elemen "stream" yang baru saja Anda referensikan di sana di tengah tidak melakukan apa-apa di sana, tidak terkait dengan siapa pun. Jadi ini adalah sintaks yang tidak valid dan gagal.

Saya yakin Anda sebenarnya tidak menginginkan elemen tee, sehingga Anda dapat sepenuhnya menghapusnya dan rujukannya. Inilah yang berguna untuk tee: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-plugins/html/gstreamer-plugins-tee.html

Selain itu, Anda juga bisa memiliki 2 saluran pipa terpisah, satu untuk setiap kamera. Melakukannya pada satu atau dua tergantung pada bagaimana Anda ingin mengelola dan jika mereka perlu berbagi beberapa data terkait pipa, seperti jam. Tapi itu tergantung pada kasus penggunaan Anda yang saya tidak tahu secara mendalam.

tiagoss
sumber
Terima kasih atas jawaban Anda, potongan kode yang Anda komentari berasal dari topik yang saya tautkan, bukan milik saya, saya hanya menggunakannya sebagai basis untuk membuat milik saya
Bruno Cerk
Sampel yang Anda sebutkan (yang ke-2). Juga mengandung elemen stream.
thiagoss