Page 1 of 1

Nagrywanie strumienia http za pomocą VLC

Posted: 2013-05-26, 08:23
by anonim
Na początek odnajdujemy stream http czy to na naszej stronie czy innej nie ma znaczenia ważne żeby działał. Następnie w programie VLC włączamy Plik>Strumieniuj..

[center]Image [/center]

Wybieramy zakładkę sieć i wklejamy link do naszego odnalezionego wcześniej źródła.

Ważną rzeczą tutaj może okazać się buforowanie które ustawiamy po zaznaczeniu ptaszkiem Pokaż więcej opcji, wyrażone jest w milisekundach, standardowo 1000ms czyli 1 sekunda.

[center]Image[/center]

Dlaczego to może okazać się ważne ? Dzięki cachowaniu(buforowaniu) możemy zniwelować niepożądane zacinanie się obrazu, powodowane chwilową niestabilnością łącza po stronie klienta lub serwera.

Klikamy Strumieniuj i wybieramy cel, w naszym przypadku jest to plik, gdyż cały materiał chcemy zapisać na dysku twardym, określamy położenie pliku który dowolnie nazywamy. Do wyboru mamy kilka rozszerzeń, może być to np. .mp4.

[center]Image [/center]

Transkodowanie nie jest konieczne w tym przypadku, gdyż często jakość steam'u pozostawia wiele do życzenia a lepszą jakość trudno byłoby uzyskać i tylko niepotrzebnie zużywalibyśmy zasoby naszego komputera.

Tutorial w postaci filmu wideo:
http://www.youtube.com/watch?v=9SZNyvunsfo

Posted: 2014-01-20, 22:17
by anonim
małe pytanko, co może być przyczyną braku dźwięku w pliku wynikowym?

Posted: 2014-01-20, 22:25
by anonim
pszem, prawdopodobnie źle wybrany kodek.

Posted: 2014-01-21, 10:44
by anonim
Coś faktycznie nie tak z kodekami muszę mieć na kompie, dziś identycznie postepując udało mi się zgrać stream na laptopie,
pozdrawiam

Posted: 2014-05-30, 14:36
by anonim
Witam mam problem po jakims czasie [ czasem 2h czasem 8h ]przestaje streamowac

RTMP_ReadPacket, failed to read RTMP packet header

no i po tym musze zamknac vlc i odpalic ponownie i znowu wszystko dziala

jest jakis sposob zeby vlc robil reconnect czy cos bo to meczace jest logowac sie na serwer i zamykac odpalac vlc

Posted: 2014-05-31, 07:11
by anonim
Len1o, chodzi o system windows ?

Posted: 2014-05-31, 12:12
by anonim
system centos 6

da sie zrobic tak samo z ffmpeg jak z vlc ? zeby streamowac przez http

Posted: 2014-05-31, 13:27
by anonim
Trzeba byłoby uruchomić ffserver, ale nie mam doświadczenia.

Jeżeli chodzi o vlc trzeba stworzyć prostą pętle w bashu może php lub innym języku która po błędzie będzie uruchamiać stream od nowa i dodać na końcu komendy strumieniującej w programie vlc

Code: Select all

vlc:quit

co powinno zamknąć program po błędzie lub zakończeniu a nie czuwać na reakcje usera.

Jak będziesz nadal miał problemu to utwórz nowy wątek odpowiednio nazwij temat i opisz problem ;-)

Posted: 2014-05-31, 15:46
by anonim
Juz niebede robil nowego watku bo juz wszystko napisales uzywam vlc w gui bo niewiem jaka komenda to zrobic.

Pytanko pomogl bys zrobic taki skrypt zeby po bledzie uruchamial sie ponownie.

Posted: 2014-05-31, 17:58
by anonim
Można wykorzystać przykłady z tego wątku
http://stream-recorder.pl/viewtopic.php?p=7831#7831
Nie znam twojego źródła bo nic o nim nie wspomniałeś ale powiedzmy, że chcemy streamować na porcie 8085 (tzn http://naszeip:8085/)

Code: Select all

#!/bin/bash 
until 1=1; do
cvlc 'plik.avi' --sout='#transcode {vcodec=h264,vb=512,scale=1,acodec=mp3,ab=64,channels=2,samplerate=22050}:http{mux=ffmpeg {mux=flv},dst=:8085/}' --sout-all --sout-keep vlc://quit
done

Komenda widoczna również tutaj, gdyż znacznik przekształca http://wklej.org/hash/b51fe95ba5a/txt/
Jak dobrze utworzyć komende vlc ? Wcześniej korzystając z gui przed rozpoczęciem nadawania pojawia nam się okno, dzięki niemu wybieramy interesujące nas informacje i tworzymy odpowiednią składnię.
[center]Image[/center]
Pamiętajmy, aby nie wybierać podglądu podczas nadawania, gdyż nie umożliwia tego konsolowa edycja vlc (cvlc).

Oczywiście piszę to tylko czysto teoretycznie trzeba jeszcze potestować i sprawdzić.

Posted: 2014-05-31, 18:18
by anonim
dzięki komenda dziala :D

stream działa troche tnie ale to poprawie ale dostaje error

Code: Select all

Using network protocols without global network initialization. Please use avformat_network_init(), this will become mandatory later.
Metadata:
  Server                NGINX RTMP (github.com/arut/nginx-rtmp-module)
  width                 640.00
  height                360.00
  displayWidth          640.00
  displayHeight         360.00
  duration              0.00
  framerate             1000.00
  fps                   1000.00
  videodatarate         500.00
  videocodecid          7.00
  audiodatarate         96.00
  audiocodecid          10.00
  profile               
  level                 
x264 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2
x264 [info]: profile High, level 3.0
x264 [info]: final ratefactor: 28.25
[libmp3lame @ 0xb6e0adc0] Channel layout not specified
x264 [info]: using SAR=1/1
x264 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2
x264 [info]: profile High, level 3.0
[flv @ 0xb6c0b120] Codec for stream 0 does not use global headers but container format requires global headers
[flv @ 0xb6c0b120] Codec for stream 1 does not use global headers but container format requires global headers
[flv @ 0xb6c0b120] Packets are not in the proper order with respect to DTS
[0xb6c04198] avformat mux error: could not write frame (pts: 120000, dts: 40000) (pkt pts: 120, dts: 40)
[flv @ 0xb6c0b120] Packets are not in the proper order with respect to DTS
[0xb6c04198] avformat mux error: could not write frame (pts: 74116, dts: 74116) (pkt pts: 74, dts: 74)



i czy ten error to cos powaznego

Code: Select all

packetizer_h264 decoder error: Broken frame : size 21823530 is too big

Posted: 2014-05-31, 20:28
by anonim
Raczej nie, po prostu VLC zgubił klatke.