Desavil 88 Zgłoś post Napisano Czerwiec 28, 2014 (edytowany) Witam. Chciałbym się dowiedzieć jakie polecacie darmowe odtwarzacze (włącznie z zastosowaniem komercyjnym) protokołu RTMP na swoją stronę internetową. Chodzi mi, aby wspierały dużą ilość przeglądarek oraz urządzeń mobilnych. Pozdrawiam! Edytowano Czerwiec 28, 2014 przez Desavil (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
wojtekd 0 Zgłoś post Napisano Czerwiec 28, 2014 Zdecydowanie JW Player, a drugi w kolejności Flowplayer. Polecam gdyż wspierają największą liczbę urządzeń. Pozdrawiam Wojciech Dalętka http://video.nadaje.com Udostępnij ten post Link to postu Udostępnij na innych stronach
Desavil 88 Zgłoś post Napisano Czerwiec 28, 2014 (edytowany) Tak, tylko licencja w wersji darmowej tych odtwarzaczy nie pozwala na użytek komercyjny, chyba że coś źle przeczytałem. @edit Chyba flowplayer można używać do celów komercyjnych w wersji darmowej: Free version The Free version is licensed under a GPL based License. Use it freely in every possible situation including commercial projects. This version displays a Flowplayer copyright notice on the bottom left corner of the player. Copyright notices and author attribution are also present in the player's context menu. According to the license the copyright notices and author attribution must stay intact and be shown in the player's User Interface even if you modify the source code. See Free license FAQ for more information. Edytowano Czerwiec 28, 2014 przez Desavil (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
Desavil 88 Zgłoś post Napisano Czerwiec 28, 2014 (edytowany) Mam jeszcze takie pytanie. Na nginx'ie postawiony serwer RTMP. Na odtwarzaczu videojs obraz bez problemu się wyświetla. Natomiast nie wiem dlaczego na wspomnianym flowplayer po konfiguracji do odtwarzania tego protokołu, wyświetla się taki komunikat: flash: Invalid RTMP URL rtmpt://moj-serwer:3050/stream/live Dziwi mnie, dlaczego on dopisuje na końcu literę "t" rtmpt a podana konfiguracja jest w taki sposób: flowplayer.conf = { live: true, // mandatory with live streams rtmp: "rtmp://moj-serwer:3050/stream/live", ratio: 9/16, // work around a bug in the flash engine regarding live streams swf: "//releases.flowplayer.org/5.4.3/flowplayer.swf" }; Edytowano Czerwiec 28, 2014 przez Desavil (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
Misiek08 285 Zgłoś post Napisano Lipiec 1, 2014 (edytowany) video.js, mediaelement.js lub OSMF. W razie dodatkowych pytań zapraszam na PW lub tutaj w temacie RTMP to podstawowy protokół przesyłania danych. Odmiany T, F, S, E to po prostu RTMP z dodatkowymi elementami np. zabezpieczającymi stream. Edytowano Lipiec 1, 2014 przez Misiek08 (zobacz historię edycji) 1 Udostępnij ten post Link to postu Udostępnij na innych stronach
limes 27 Zgłoś post Napisano Lipiec 4, 2014 Natomiast nie wiem dlaczego na wspomnianym flowplayer po konfiguracji do odtwarzania tego protokołu, wyświetla się taki komunikat: Zależy jaka to wersja flowplayera. Sam nie korzystam z najnowszej dlatego podaje przykład zastosowania wersji oznaczonej cyframi 3.2 http://chrzastowice.com/iframe.php?ch=kamera1 W kodzie strony wszystko widać. Udostępnij ten post Link to postu Udostępnij na innych stronach
Desavil 88 Zgłoś post Napisano Lipiec 4, 2014 (edytowany) Problemem był mój błąd. Tutaj: rtmp: "rtmp://moj-serwer:3050/stream/live", Nie podaje się całej ścieżki, usunąłem /live i dopisałem w: <source type="video/flash" src="live" /> I działa w taki sposób. Pomógł Misiek08, któremu bardzo dziękuję. Jedyne co mnie jeszcze w tym streamie denerwuje, to długie jego wczytywanie w odtwarzaczu. Po rozpoczęciu nadawania stream ładuje się w ok. 2 sekundy, ale jak już działa np. 1-2 dni to ładowanie trwa nawet 10 sekund. Samo opóźnienie nie jest złe, najmniejsze jakie zauważyłem to 2 sekundy, a największe 5 sekund. Edytowano Lipiec 4, 2014 przez Desavil (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
Misiek08 285 Zgłoś post Napisano Lipiec 4, 2014 Tak jak mówiłem na PW. Moduł nginx-rtmp jest tutaj przyczyną, jedynie można delikatnie próbować poprawić takimi rzeczami jak wait_video/wait_key (więcej można w dokumentacji modułu poczytać), jednak opóźnienie ok. 3-5sekund przy uruchamianiu i tak zostanie. Udostępnij ten post Link to postu Udostępnij na innych stronach
Desavil 88 Zgłoś post Napisano Lipiec 8, 2014 Chciałbym dopytać jeszcze o jedną rzecz, aby nie tworzyć nowego tematu. Czy w jakiś sposób można robić reconnect, nawiązywać ponownie połączenie ze strumieniem jeżeli nastąpi jakiś problem w komunikacji? Mam kamerkę IP, z której streamuję obraz przez nginx i czasem nastąpi rozłączenie z powodu działania internetu. Zrobiłem sobie więc taki skrypt: #!/bin/bash while [ true ] ; do ffmpeg -i rtsp://strumien -vcodec libx264 -b:v 500k -bufsize 500k -an -f flv rtmp://127.0.0.1:1935/stream/live -vf scale=hd720 sleep 5 done Niestety nie zawsze się to sprawdza, a wręcz w momencie jeżeli ffmpeg będzie wyrzucał dużo "drop=", nie następuje wtedy próba ponownego połączenia. Można to jakoś zautomatyzować? Może da się to zrobić bezpośrednio w module rtmp dla nginx? Dziękuję za pomoc. Udostępnij ten post Link to postu Udostępnij na innych stronach
Misiek08 285 Zgłoś post Napisano Lipiec 8, 2014 Nginx ma takie dyrektywy jak exec_publish i inne exec. Popatrz, czy np. taka dyrektywa wraz z Twoim skryptem nie byłaby wystarczająca. Udostępnij ten post Link to postu Udostępnij na innych stronach
limes 27 Zgłoś post Napisano Lipiec 10, 2014 Dokładnie jak Misiek08 napisał, podaje przykład, sam korzystam z tego w celu transkodowania kanałów application live { ... exec_push ffmpeg -i rtsp://strumien -vcodec libx264 -b:v 500k -bufsize 500k -an -f flv rtmp://127.0.0.1:1935/stream/live -vf scale=hd720 ... } Udostępnij ten post Link to postu Udostępnij na innych stronach
Desavil 88 Zgłoś post Napisano Lipiec 10, 2014 (edytowany) W taki sposób niestety w ogóle się nie łączy. Zarówno przez exec_push jak i exec_publish. rtmp { server { listen 1935; chunk_size 4000; buflen 1s; application stream { max_connections 100; allow publish 127.0.0.1; deny publish all; allow play all; live on; exec_push ffmpeg -i rtsp://strumien -vcodec libx264 -b:v 500k -bufsize 500k -an -f flv rtmp://127.0.0.1:1935/stream/live -vf scale=hd720; } } } Edytowano Lipiec 10, 2014 przez Desavil (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
limes 27 Zgłoś post Napisano Lipiec 10, 2014 Spróbuj tak: exec_static ffmpeg -i rtsp://strumien -vcodec libx264 -b:v 500k -bufsize 500k -an -f flv rtmp://127.0.0.1:1935/stream/live -vf scale=hd720; Przepraszam mój wcześniejszy post dotyczył transkodowania kanałów obecnie nadawanych na serwer, ale mniejsza z tym teraz już sprawdziłem i tak powinno działać ;-) Udostępnij ten post Link to postu Udostępnij na innych stronach
Desavil 88 Zgłoś post Napisano Lipiec 10, 2014 (edytowany) Teraz się połączyło i nadaje. Ale połączenie ze streamem w playerze trwa bardzo długo, pomijam już to, ale obraz nie jest płynny tylko klatkuje. W rtmpstats widzę również, że Timestamp oraz A-V, dla playing nie idzie płynnie z publishing, co w przypadku bezpośredniego nadawania z uruchomionej komendy ffmpeg z poziomu konsoli nie miało miejsca, hmm. Dodam jeszcze, że czasami ffmpeg wyświetla takie coś: bitrate= 274.9kbits/frame= 73 fps= 48 q=30.0 size= 28kB time=00:00:00.84 bitrate= 274.9kbits/frame= 73 fps= 36 q=30.0 size= 28kB time=00:00:00.84 bitrate= 274.9kbits/frame= 73 fps= 29 q=30.0 size= 28kB time=00:00:00.84 bitrate= 274.9kbits/frame= 73 fps= 24 q=30.0 size= 28kB time=00:00:00.84 bitrate= 274.9kbits/frame= 73 fps= 21 q=30.0 size= 28kB time=00:00:00.84 bitrate= 274.9kbits/frame= 73 fps= 18 q=30.0 size= 28kB time=00:00:00.84 bitrate= 274.9kbits/frame= 73 fps= 16 q=30.0 size= 28kB time=00:00:00.84 bitrate= 274.9kbits/frame= 73 fps= 14 q=30.0 size= 28kB time=00:00:00.84 bitrate= 274.9kbits/frame= 73 fps= 13 q=30.0 size= 28kB time=00:00:00.84 bitrate= 274.9kbits/frame= 73 fps= 12 q=30.0 size= 28kB time=00:00:00.84 bitrate= 274.9kbits/frame= 73 fps= 11 q=30.0 size= 28kB time=00:00:00.84 bitrate= 274.9kbits/frame= 74 fps= 10 q=30.0 size= 28kB time=00:00:00.88 bitrate= 262.9kbits/frame= 94 fps= 12 q=29.0 size= 51kB time=00:00:01.68 bitrate= 247.8kbits/frame= 109 fps= 14 q=30.0 size= 123kB time=00:00:08.68 bitrate= 116.0kbits/frame= 109 fps= 13 q=30.0 size= 123kB time=00:00:08.68 bitrate= 116.0kbits/frame= 109 fps= 12 q=30.0 size= 123kB time=00:00:08.68 bitrate= 116.0kbits/frame= 109 fps= 11 q=30.0 size= 123kB time=00:00:08.68 bitrate= 116.0kbits/frame= 109 fps= 11 q=30.0 size= 123kB time=00:00:08.68 bitrate= 116.0kbits/frame= 109 fps= 10 q=30.0 size= 123kB time=00:00:08.68 bitrate= 116.0kbits/frame= 109 fps=9.8 q=30.0 size= 123kB time=00:00:08.68 bitrate= 116.0kbits/frame= 109 fps=9.4 q=30.0 size= 123kB time=00:00:08.68 bitrate= 116.0kbits/frame= 109 fps=9.0 q=30.0 size= 123kB time=00:00:08.68 bitrate= 116.0kbits/frame= 109 fps=8.7 q=30.0 size= 123kB time=00:00:08.68 bitrate= 116.0kbits/frame= 109 fps=8.3 q=30.0 size= 123kB time=00:00:08.68 bitrate= 116.0kbits/frame= 109 fps=8.0 q=30.0 size= 123kB time=00:00:08.68 bitrate= 116.0kbits/frame= 113 fps=8.0 q=28.0 size= 130kB time=00:00:08.84 bitrate= 120.7kbits/frame= 145 fps=9.9 q=23.0 size= 208kB time=00:00:10.12 bitrate= 168.2kbits/frame= 153 fps= 10 q=28.0 size= 262kB time=00:00:10.44 bitrate= 205.3kbits/frame= 153 fps=9.8 q=28.0 size= 262kB time=00:00:10.44 bitrate= 205.3kbits/frame= 153 fps=9.5 q=28.0 size= 262kB time=00:00:10.44 bitrate= 205.3kbits/frame= 153 fps=9.2 q=28.0 size= 262kB time=00:00:10.44 bitrate= 205.3kbits/frame= 153 fps=8.9 q=28.0 size= 262kB time=00:00:10.44 bitrate= 205.3kbits/frame= 153 fps=8.7 q=28.0 size= 262kB time=00:00:10.44 bitrate= 205.3kbits/frame= 153 fps=8.4 q=28.0 size= 262kB time=00:00:10.44 bitrate= 205.3kbits/frame= 153 fps=8.2 q=28.0 size= 262kB time=00:00:10.44 bitrate= 205.3kbits/frame= 153 fps=8.0 q=28.0 size= 262kB time=00:00:10.44 bitrate= 205.3kbits/frame= 153 fps=7.8 q=28.0 size= 262kB time=00:00:10.44 bitrate= 205.3kbits/frame= 153 fps=7.6 q=28.0 size= 262kB time=00:00:10.44 bitrate= 205.3kbits/frame= 153 fps=7.4 q=28.0 size= 262kB time=00:00:10.44 bitrate= 205.3kbits/frame= 157 fps=7.4 q=28.0 size= 282kB time=00:00:10.60 bitrate= 217.7kbits/frame= 184 fps=8.5 q=29.0 size= 346kB time=00:00:17.28 bitrate= 164.1kbits/frame= 196 fps=8.8 q=28.0 size= 384kB time=00:00:17.76 bitrate= 177.0kbits/frame= 196 fps=8.6 q=28.0 size= 384kB time=00:00:17.76 bitrate= 177.0kbits/frame= 196 fps=8.5 q=28.0 size= 384kB time=00:00:17.76 bitrate= 177.0kbits/frame= 196 fps=8.3 q=28.0 size= 384kB time=00:00:17.76 bitrate= 177.0kbits/frame= 196 fps=8.1 q=28.0 size= 384kB time=00:00:17.76 bitrate= 177.0kbits/frame= 196 fps=7.9 q=28.0 size= 384kB time=00:00:17.76 bitrate= 177.0kbits/frame= 196 fps=7.8 q=28.0 size= 384kB time=00:00:17.76 bitrate= 177.0kbits/frame= 196 fps=7.6 q=28.0 size[h264 @ 0x33bd520] mmco: unref short failureime=00:00:52.60 bitrate= 130.5kbits/s dup=0 drop=6 [h264 @ 0x33bd520] illegal short term buffer state detected [h264 @ 0x32954e0] left block unavailable for requested intra mode at 0 22kbits/s dup=0 drop=6 [h264 @ 0x32954e0] error while decoding MB 0 22, bytestream 14005 [h264 @ 0x32954e0] concealing 1889 DC, 1889 AC, 1889 MV errors in I frame [h264 @ 0x316d480] Cannot use next picture in error concealmentrate= 137.8kbits/s dup=0 drop=6 [h264 @ 0x316d480] concealing 1629 DC, 1629 AC, 1629 MV errors in P frame [h264 @ 0x34e5560] concealing 1076 DC, 1076 AC, 1076 MV errors in I frame5kbits/s dup=0 drop=7 [h264 @ 0x316d480] concealing 812 DC, 812 AC, 812 MV errors in I frame34.7kbits/s dup=0 drop=7 [h264 @ 0x316d480] Cannot use next picture in error concealmentrate= 135.1kbits/s dup=0 drop=7 [h264 @ 0x316d480] concealing 359 DC, 359 AC, 359 MV errors in P frame frame= 2164 fps=5.1 q=28.0 size= 6907kB time=00:06:57.68 bitrate= 135.5kbits/s dup=0 drop=7 Edytowano Lipiec 10, 2014 przez Desavil (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
Desavil 88 Zgłoś post Napisano Lipiec 12, 2014 (edytowany) Serwer dedykowany E3 1245v2, 32 GB RAM, 2x 120 GB SSD, 250Mbps, na którym uruchomiony jest praktycznie tylko ten ffmpeg nie wyrabia? Edytowano Lipiec 12, 2014 przez Desavil (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
Desavil 88 Zgłoś post Napisano Lipiec 12, 2014 A to nie wiem.. -bufsize zwiększ. Powinno zadziałać. Okej, sprawdzę. Udostępnij ten post Link to postu Udostępnij na innych stronach
Desavil 88 Zgłoś post Napisano Lipiec 15, 2014 W rozwiązaniu problemu pomógł limes, któremu dziękuję. Udostępnij ten post Link to postu Udostępnij na innych stronach