The tee
perintah membaca dari input standar dan salinan ke sejumlah file ditambah output standar secara default, lihat man tee
untuk lebih jelasnya. Ini berarti Anda dapat meminta tee untuk membuat file dari input dan kemudian mengirimkan hasilnya ke sesuatu yang lain.
Penambahan pipa tambahan secara teori menambah sedikit inefisiensi. Mengenai apakah ini penting atau tidak, Anda harus menilai sendiri menggunakan metode streaming Anda sendiri. Metode saya saat ini tidak memuaskan pada resolusi penuh. Ini bukan minat besar sekarang tetapi ketika itu saya akan mencoba untuk menemukan sesuatu yang lebih baik (misalnya seharusnya Gstreamer bekerja lebih baik daripada CLVC).
Namun, perlu dicatat bahwa file yang disimpan secara lokal pada pi pada saat yang sama adalah kualitas yang sempurna, sehingga aktivitasnya tidak mengganggu raspivid. Ini sebuah contoh:
raspivid -o - -t 0 | tee test_video.h264 |
cvlc -v stream:///dev/stdin --sout '#standard{access=http,mux=ts,dest=:8080' :demux=h264
Saya membagi ini menjadi dua baris untuk dibaca; Anda dapat menekan kembali setelah |
(pipa) dan menyelesaikan perintah sama seperti Anda dapat memutuskan garis \
. Anda dapat mengganti cvlc
dengan apa pun yang Anda inginkan. Sekali lagi, meskipun kualitas alirannya buruk, test_video.h264
hasilnya sempurna.
Jika saya menurunkan resolusi ke 640x360 pengaturan ini baik-baik saja, dengan satu atau dua latensi yang biasanya saya dapatkan. Saya tidak berpikir tee
atau pipa kedua membuat perbedaan pada kualitas aliran; ini mampu throughput yang jauh lebih tinggi dari yang diperlukan di sini dan tidak memerlukan banyak sumber daya sistem.
CPU bekerja pada 35-45%, yang sama dengan CPU streaming video tee
.
raspivid
Anda bisatee
output ke file dan gstreamer atau apa pun (lihatman tee
). Selama satu aliran langsung ke disk, itu tidak akan menambah banyak overhead, tetapi jika Anda ingin memproses input menjadi dua format yang berbeda secara bersamaan, saya pikir itu akan terlalu banyak pekerjaan untuk pi untuk menangani.