Egy helyi TVben szeretnék átállni NSV streamről FLV-re.
Jelenleg NSVvel úgy működik a műsorszórás, hogy bent a stúdióban egy windowsos gép kódolja át a videót (nsvcap) és azt küldi egy szerverhostinghoz betett gépre amin Icecast2 fut. Tehát a szerver már semmiféle átkódolást nem végez, csak és kizárólag a műsorszórást látja el.
Namost ugyanezt szeretném, csak FLV-ben ffmpeggel és továbbra is maradnék a http protokollnál és értelemszerően a source gépen a Win cserélődne Linuxra.
Egy próba rendszeren ffmpeg + ffserver párossal már sikerült megcsinálni. A erre gépre csatlakozva tökéletesen bejön a video jwplayerrel nézve.
A hostingnál lévő szerveren upgradeltem az Icecast2-t ( http://www.xiphicecast.webspace.virginmedia.com/ ) mert ez már elvileg tudja az FLV-t. Relay-t beállítottam, ez a mountpointok között látszódik is, a wget le is tudja tölteni. Azonban a Jwplayer ezt már nem játsza le. Az Icecast2 alapból nem kódol át semmit, tehát innentől érdekes a dolog.
Ha Icecast2-vel nem oldható meg, akkor jöhet bármi más megoldás ha teljesíti ezeket a feltételt: A stúdióban lévő gép kódolja át a videót FLV-be és már eleve ez a videó megy ki onnan.
Eddig ffserver jutott eszembe egy relay only megoldással de erről semmilyen információt nem találtam. A Wowza, Red5 és hasonló megoldásokat kerülni szeretném.
Help pls!
- 3447 megtekintés
Hozzászólások
mit szólnál egy VLC-hez?
Erre gondoltam: http://www.videolan.org/projects/vlma/
- A hozzászóláshoz be kell jelentkezni
Latom mar ez is ugyanugy javas mint a Wowza meg a Red5. Ez nagyon agyuval verebre nevu dolog (szerintem). Javat meg most nagyon maceras arra a gepre telepiteni. Tehat ha az Icecast2 maga 1 megajaval meg tudtam oldani egy egyszeru relay-t akkor kell lennie mas hasonlo dolognak is.
- A hozzászóláshoz be kell jelentkezni
Akkor lehet elég lenne neked, ha a VLC bemenetről olvas, és FLVben küldi fel a szerverre az adatokat. Akkor meg sima videolan kliens, parancssorból (és Linux alatt :)) )
- A hozzászóláshoz be kell jelentkezni
Igen, es atkodolja megegyszer, teljesen feleslegesen :)
Amugy kozben van egy kis nehezites is. Kapcsolodasok szamat is korlatozni kellene, de ugy, hogy vannak idoszakok amikor tobben is csatlakozhatnak a szerverre. Bonusz nehezites: Mindezt egy config file reloaddal, tehat ujrainditas nelkul.
- A hozzászóláshoz be kell jelentkezni
Na, ugy nez ki sima flv-vel megy a dolog flv video codeccel mp3 hanggal.
Szerveren csak az ffserver van fent, studioban csak az ffmpeg. A 2 kozott megy gyonyoruen.
Nade! A mostani VP6-os NSV stream ugyanazon a bitratan sokkal jobb minoseget tud mint ez a hulladek flv. Ezert a hires h264-es codeccel probaltam meg aac+ hanggal.
Na ez mar nem jott ossze:
root@stream:~# ffmpeg -f alsa -ac 1 -i hw:0,0 -r 25 -s 720x576 -f video4linux2 -i /dev/video0 -vc 4 http://87.229.24.114:8014/feed1.ffm -vcodec libx264 -vpre default
FFmpeg version SVN-r24819-snapshot, Copyright (c) 2000-2010 the FFmpeg developers
built on Aug 19 2010 20:32:04 with gcc 4.4.5 20100728 (prerelease)
configuration: --enable-gpl --enable-libx264 --enable-swscale --enable-muxer=alsa --enable-demuxer=alsa --extra-libs=-lasound --enable-nonfree --enable-pthreads --enable-libfaac --enable-libmp3lame --enable-libtheora --enable-librtmp --enable-debug=3 --enable-libvpx
libavutil 50.24. 0 / 50.24. 0
libavcore 0. 4. 0 / 0. 4. 0
libavcodec 52.85. 1 / 52.85. 1
libavformat 52.78. 3 / 52.78. 3
libavdevice 52. 2. 1 / 52. 2. 1
libavfilter 1.36. 0 / 1.36. 0
libswscale 0.11. 0 / 0.11. 0
[alsa @ 0x93e8490] Estimating duration from bitrate, this may be inaccurate
Input #0, alsa, from 'hw:0,0':
Duration: N/A, start: 1584.999645, bitrate: N/A
Stream #0.0: Audio: pcm_s16le, 44100 Hz, 1 channels, s16, 705 kb/s
[video4linux2 @ 0x93f1e10] Estimating duration from bitrate, this may be inaccurate
Input #1, video4linux2, from '/dev/video0':
Duration: N/A, start: 1282238760.298201, bitrate: 124416 kb/s
Stream #1.0: Video: rawvideo, yuv420p, 720x576, 124416 kb/s, 25 tbr, 1000k tbn, 25 tbc
[buffer @ 0x93f1c20] w:720 h:576 pixfmt:yuv420p
[libx264 @ 0x93f9f90] broken ffmpeg default settings detected
[libx264 @ 0x93f9f90] use an encoding preset (vpre)
Output #0, ffm, to 'http://87.229.24.114:8014/feed1.ffm':
Stream #0.0: Audio: libfaac, 44100 Hz, 2 channels, s16, 64 kb/s
Stream #0.1: Video: libx264, yuv420p, 720x576, q=3-10, 1024 kb/s, 1000k tbn, 25 tbc
Stream mapping:
Stream #0.0 -> #0.0
Stream #1.0 -> #0.1
Error while opening encoder for output stream #0.1 - maybe incorrect parameters such as bit_rate, rate, width or height
ioctl(VIDIOC_QBUF)
root@stream:~#
libx264-default.ffpreset fajl a helyen van es meg is talalja, de probaltam mas ffpreset fajlokkal de azokkal is ugyanaz.
ffserver beallitasanak ide vonatkozo resze:
<Stream live.flv>
Feed feed1.ffm
Format flv
VideoCodec libx264
VideoFrameRate 25
VideoSize 720x576
VideoBitRate 1024
VideoBufferSize 256
VideoQMin 3
VideoQMax 10
VideoGopSize 200
PreRoll 10
#StartSendOnKey
AudioCodec aac
AudioBitRate 64
AudioSampleRate 44100
AudioChannels 2
</Stream>
Probaltam 320x240-es felbontasban is de azzal is valtozatlan.
Otlet?
- A hozzászóláshoz be kell jelentkezni
Ez lett a megoldas:
Ez is kell a ffserver.conf -ba
AVOptionVideo coder 0
AVOptionVideo bf 0
AVOptionVideo flags2 +mixed_refs+fastpskip
AVOptionVideo flags +loop
AVOptionVideo cmp +chroma
AVOptionVideo partitions +parti8x8+parti4x4+partp8x8+partb8x8
AVOptionVideo me_method hex
AVOptionVideo subq 7
AVOptionVideo me_range 16
AVOptionVideo g 250
AVOptionVideo keyint_min 25
AVOptionVideo sc_threshold 40
AVOptionVideo i_qfactor 0.71
AVOptionVideo b_strategy 1
AVOptionVideo qcomp 0.6
AVOptionVideo qmin 9
AVOptionVideo qmax 61
AVOptionVideo qdiff 4
AVOptionVideo refs 3
AVOptionVideo directpred 1
AVOptionVideo trellis 1
AVOptionVideo flags2 +mixed_refs+fastpskip
AVOptionVideo wpredp 0
AVOptionVideo flags +global_header
- A hozzászóláshoz be kell jelentkezni
Nem lett teljesen jo a dolog hosszabb tavon.
Bizonyos fajta tunerkatyakkal csuszik a kep es a hang. Foleg azokkal amiken alapertelmezetten nem a Composite1 bemenet van kivalasztva. Az ffmpeg elinditasa utan at kell allitani a bememetet mert az elore beallitott bemenetet es tobbi beallitast az ffmpeg egyszeruen torli. Emiatt elkezd csuszni a kep es a hang (a hang jon hamarabb) kb annyi idovel mint amennyi ido mulva atallitom a kartya bemenetet. Tobb fele tunerkertyaval probaltam (BT878, SAA7131E), de kisebb nagyon mertekben mindegyiken jelentkezik a problema. Hosszabb tavon (1-3 ora) ennek a csuszasnak a merteke no. Windows alatt az SAA7131-es kartyaval tudtam tesztelni nsvcappal. Azzal tokeletesen ment hosszabb tavon is 720x576-ban es a bemenetet is elore ki tudtam valasztani. Erre kellene meg valami megoldas ffmpegre.
- A hozzászóláshoz be kell jelentkezni
Na, kiprobaltam melohelyen, gondoltam lesz ami lesz:
Az eredmeny:
root@stream:~/stream# ./ffmpeg -f alsa -ac 1 -i hw:0,0 -r 25 -s 720x576 -f video4linux2 -i /dev/video0 http://87.229.24.114:8014/feed1.ffm
FFmpeg version SVN-r24819-snapshot, Copyright (c) 2000-2010 the FFmpeg developers
built on Aug 19 2010 20:32:04 with gcc 4.4.5 20100728 (prerelease)
configuration: --enable-gpl --enable-libx264 --enable-swscale --enable-muxer=alsa --enable-demuxer=alsa --extra-libs=-lasound --enable-nonfree --enable-pthreads --enable-libfaac --enable-libmp3lame --enable-libtheora --enable-librtmp --enable-debug=3 --enable-libvpx
libavutil 50.24. 0 / 50.24. 0
libavcore 0. 4. 0 / 0. 4. 0
libavcodec 52.85. 1 / 52.85. 1
libavformat 52.78. 3 / 52.78. 3
libavdevice 52. 2. 1 / 52. 2. 1
libavfilter 1.36. 0 / 1.36. 0
libswscale 0.11. 0 / 0.11. 0
[alsa @ 0x9948490] Estimating duration from bitrate, this may be inaccurate
Input #0, alsa, from 'hw:0,0':
Duration: N/A, start: 1472.999978, bitrate: N/A
Stream #0.0: Audio: pcm_s16le, 44100 Hz, 1 channels, s16, 705 kb/s
[video4linux2 @ 0x9951e10] Cannot find a proper format for codec_id 0, pix_fmt -1.
/dev/video0: Input/output error
root@stream:~/stream#
Kozben eszrevettem hogy ennel a kartyanal letrejott egy video24 es egy video32 is.
Kiprobaltam azokkal is, de sajnos ugyanaz.
A kartya lspci szerint:
03:00.0 Multimedia video controller: Internext Compression Inc iTVC16 (CX23416) MPEG-2 Encoder (rev 01)
Subsystem: Avermedia Technologies Inc C115 PCI video capture card (no tuner)
Flags: bus master, medium devsel, latency 64, IRQ 20
Memory at e0000000 (32-bit, prefetchable) [=64M]
Capabilities: [44] Power Management version 2
Kernel driver in use: ivtv
A kartya jo mert Windows alatt az nsvcap 720x576-ban frame eldobas nelkul tokeletesen megy, raadasul most a google se volt a baratom mert keptelen volt epkezlab megoldast kibodni erre a hibara.
- A hozzászóláshoz be kell jelentkezni