Ok, am mai săpat vreo 2 metri și am ajuns l-am făcut să meargă. Configul
serverului este:

adrianp@odroid64:~$ cat /etc/ffserver.conf | grep -v '#' | egrep -v '^$'
HTTPPort 8099
HTTPBindAddress 0.0.0.0
RTSPPort 554
RTSPBindAddress 0.0.0.0
MaxHTTPConnections 2000
MaxClients 1000
MaxBandwidth 1000
CustomLog -
<Feed mjpg-streamer.ffm>
File /tmp/mjpg-streamer.ffm
FileMaxSize 200K
ACL allow 127.0.0.1
</Feed>
<Stream live.h264.sdp>
Format rtp
Feed mjpg-streamer.ffm
</Stream>
<Stream stat.html>
Format status
ACL allow localhost
ACL allow 192.168.0.0 192.168.255.255
</Stream>
<Redirect index.html>
URL http://www.ffmpeg.org/
</Redirect>

Stream-ul îl pornesc așa (5fps sunt suficiente + sunet din webcam, encodat
minimal h264, cât să nu îmi încălzească procesorul și cu bitrate constant,
care mai merge tunat și cu key frame la fiecare 6 secunde (6s*5fps =
30frames)). O șmecherie interesantă e parametrul -override_ffserver ca să
nu încerce și ffserver să mai transcodeze odată streamul:

sudo ffmpeg -framerate 5 -f mjpeg -i
http://user:pass@127.0.0.1:8090/?action=stream -f alsa -i
plughw:CARD=Camera,DEV=0 -acodec libmp3lame -c:v libx264 -preset ultrafast
-r 5 -pix_fmt yuv420p -b:v 1500k -x264-params keyint=30:no-scenecut=1
-override_ffserver http://localhost:8099/mjpg-streamer.ffm

Ca sursă de semnal folosesc mjpeg-streamer deoarece funcționează ca
multiplexor (pot să obțin și snapshot-uri în timp ce stream-uiesc cu ffmpeg
și are abilitatea să îmi taie frame-urile incomplete (sub 50kB) (altfel
streamul are un flicker supărător)):

/usr/local/bin/mjpg_streamer -i 'input_uvc.so -r 1280x720 -m 50000 -n -f 15
-q 95' -o 'output_http.so -p 8090 -w /usr/local/share/mjpg-streamer/www/ -c
user:pass'

Mai trebuie să-l conving să îmi pornească streamul ffmpeg când se
conectează un client prin RTSP, ca sa nu stea să transcodeze ca prostu'
24/7 când end userul se leagă 5 minute pe zi. O variantă ciobănească ar fi
să am un parser de log ffmpeg și când văd că apare mesajul ca s-a conectat
clientul să-i dau drumul la stream, dar pare cam din topor. Mai caut o
soluție mai elegantă (suggestions welcome)...

Numai bine!


2016-04-25 12:13 GMT+03:00 Adrian Popa <adrian.popa...@gmail.com>:

> Am reușit să le combin, dar când încerc să fac playback îmi moare cu un
> segfault... Mai sap...
>
> Mon Apr 25 12:12:16 2016 FFserver started.
> Mon Apr 25 12:12:24 2016 127.0.0.1 - - [GET] "/mjpg-streamer.ffm HTTP/1.1"
> 200 4175
> Mon Apr 25 12:12:28 2016 127.0.0.1:59616 - - "PLAY live.h264/streamid=0
> RTP/UDP"
> Mon Apr 25 12:12:28 2016 127.0.0.1:39226 - - "PLAY live.h264/streamid=1
> RTP/UDP"
> Mon Apr 25 12:12:39 2016 127.0.0.1 - - [TEARDOWN] "rtsp://
> 127.0.0.1:554/live.h264/ RTSP/1.0" 200 1064
> Mon Apr 25 12:12:39 2016 127.0.0.1:0 - - "PLAY live.h264/streamid=0
> RTP/TCP"
> Mon Apr 25 12:12:39 2016 127.0.0.1:0 - - "PLAY live.h264/streamid=1
> RTP/TCP"
> Mon Apr 25 12:12:50 2016 127.0.0.1 - - [$] " " 200 892
> Mon Apr 25 12:12:50 2016 127.0.0.1 - - [] " RTP/TCP" 200 415057
> Segmentation fault
>
>
> 2016-04-23 21:24 GMT+03:00 Abibula Aygun <abibula.ay...@gmail.com>:
>
>> Incearca tutorialul asta.
>>
>> http://www.moreno.marzolla.name/software/linux-webcam-server/
>>
>>
>>
>> 2016-04-23 18:40 GMT+03:00 Adrian Popa <adrian.popa...@gmail.com>:
>>
>> > @Misu: ma ajuta, multumesc. Ffmpeg comunica cu ffserver prin http, nu
>> prin
>> > fisier. O sa mai experimentez.
>> >
>> > @Claudiu: evident, mie imi lipseau!
>> >
>> > @Aygun: o sa ma uit si la motion, thanks
>> > On 23 Apr 2016 16:03, "Abibula Aygun" <abibula.ay...@gmail.com> wrote:
>> >
>> > > Dar motion nu stie de RTSP ?
>> > >
>> > >
>> > > 2016-04-23 13:33 GMT+03:00 Claudiu Nicolaie CISMARU <
>> > > clau...@virtuamagic.com
>> > > >:
>> > >
>> > > > > ffserver pornește (dar nu ascultă pe 544/8544 - trebuie să mai
>> sap),
>> > > dar
>> > > > > dacă îi spun lui ffmpeg să scrie în /tmp/mjpg-streamer.ffm îmi
>> scrie
>> > > > > streamul acolo ca fișier în loc să se pregătească de streaming.
>> > > Probabil
>> > > > că
>> > > > > îmi lipsesc ceva parametrii.
>> > > > >
>> > > >
>> > > > Ai incercat cu RTSPBindAddress si RTSPPort ?
>> > > >
>> > > >
>> > > > _______________________________________________
>> > > > RLUG mailing list
>> > > > RLUG@lists.lug.ro
>> > > > http://lists.lug.ro/mailman/listinfo/rlug
>> > > >
>> > > _______________________________________________
>> > > RLUG mailing list
>> > > RLUG@lists.lug.ro
>> > > http://lists.lug.ro/mailman/listinfo/rlug
>> > >
>> > _______________________________________________
>> > RLUG mailing list
>> > RLUG@lists.lug.ro
>> > http://lists.lug.ro/mailman/listinfo/rlug
>> >
>> _______________________________________________
>> RLUG mailing list
>> RLUG@lists.lug.ro
>> http://lists.lug.ro/mailman/listinfo/rlug
>>
>
>
_______________________________________________
RLUG mailing list
RLUG@lists.lug.ro
http://lists.lug.ro/mailman/listinfo/rlug

Raspunde prin e-mail lui