tee
Komenda czyta ze standardowego wejścia i kopiuje do dowolnej liczby plików plus produkcję standardowej domyślnie zobaczyć man tee
więcej szczegółów. Oznacza to, że możesz poprosić tee o utworzenie pliku na podstawie danych wejściowych, a następnie potokowanie danych wyjściowych do czegoś innego.
Dodanie dodatkowej rury teoretycznie dodaje nieco nieefektywności. Jeśli chodzi o to, czy jest to znaczące, czy nie, będziesz musiał sam ocenić, korzystając z własnej metody przesyłania strumieniowego. Moja obecna metoda nie jest zadowalająca przy pełnej rozdzielczości. W tej chwili nie jest to duże zainteresowanie, ale kiedy to nastąpi, spróbuję znaleźć coś lepszego (np. Rzekomo gstreamer działa lepiej niż clvc).
Warto jednak zauważyć, że plik zapisany lokalnie na pi w tym samym czasie ma doskonałą jakość, więc aktywność nie przeszkadza w malowaniu. Oto przykład:
raspivid -o - -t 0 | tee test_video.h264 |
cvlc -v stream:///dev/stdin --sout '#standard{access=http,mux=ts,dest=:8080' :demux=h264
Podzieliłem to na dwie linie dla czytelności; możesz nacisnąć return after |
(potok) i zakończyć polecenie tak, jak możesz przerwać linię \
. Możesz zamienić na cvlc
co chcesz. Znów, chociaż strumień był niskiej jakości, test_video.h264
wyszedł idealnie.
Jeśli obniżę rozdzielczość do 640x360, to ustawienie jest w porządku, z drugim lub dwoma opóźnieniami, które zwykle otrzymuję. Nie sądzę, aby tee
druga lub druga rura miała jakikolwiek wpływ na jakość strumienia; są one zdolne do znacznie większej przepustowości niż jest to konieczne i nie wymagają dużo zasobów systemowych.
Procesor działał na poziomie 35–45%, czyli tak samo jak podczas przesyłania strumieniowego wideo sans tee
.
raspivid
możesztee
wyprowadzić dane wyjściowe do pliku i gstreamera lub cokolwiek innego (patrzman tee
). Tak długo, jak jeden strumień jest prosto na dysk, nie spowoduje to dużego obciążenia, ale jeśli chcesz przetwarzać dane wejściowe w dwóch różnych formatach jednocześnie, myślę, że będzie to zbyt dużo pracy dla pi.