ffmpeg stream server

Fórumok

Hali!

Hogyan tudom ravenni az ffserver-t arra, hogy rendesen mukodjon? Debian sarge alatt az alapconfiggal sajnos nem megy:
Az ffserver nem kuld kulonosebb hibauzenetet, az ffmpeg sem, de sem az mplayer sem win es mediaplayer nem csinal
semmit (Mindketto le tudja jatszani a sima file.asf-eket).
akarmi:~# ffserver
ffserver started.
127.0.0.1 - - [Wed Feb 22 15:43:02 2006] "GET /feed1.ffm HTTP/1.0" 200 28725
127.0.0.1 - - [Wed Feb 22 15:43:04 2006] "POST /feed1.ffm HTTP/1.0" 200 81920
192.168.1.15 - - [Wed Feb 22 15:41:40 2006] "GET /test.asx HTTP/1.1" 200 151

akarmi:~# ffmpeg http://127.0.0.1:8090/feed1.ffm
ffmpeg version 0.4.9-pre1, build 4747, Copyright (c) 2000-2004 Fabrice Bellard
configuration: --build x86_64-linux --enable-gpl --enable-pp --enable-zlib --enable-vorbis --enable-a52 --enable-dts --disable-debug --prefix=/usr
built on Mar 23 2005 00:08:58, gcc: 3.3.5 (Debian 1:3.3.5-12)
Input #0, video4linux, from '':
Duration: N/A, bitrate: N/A
Stream #0.0: Video: rawvideo, yuv420p, 352x240, 15.00 fps
Input #1, audio_device, from '':
Duration: N/A, bitrate: N/A
Stream #1.0: Audio: pcm_s16le, 22050 Hz, mono, 352 kb/s
Output #0, ffm, to 'http://127.0.0.1:8090/feed1.ffm':
Stream #0.0: Audio: mp2, 22050 Hz, mono, 64 kb/s
Stream #0.1: Video: msmpeg4, 352x240, 15.00 fps, q=3-31, 256 kb/s
Stream #0.2: Audio: mp2, 22050 Hz, mono, 32 kb/s
Stream #0.3: Video: msmpeg4, 176x144, 15.00 fps, q=3-31, 32 kb/s
Stream mapping:
Stream #1.0 -> #0.0
Stream #0.0 -> #0.1
Stream #1.0 -> #0.2
Stream #0.0 -> #0.3
[msmpeg4 @ 0x704640]removing common factors from framerate
[msmpeg4 @ 0x704640]removing common factors from framerate
Press [q] to stop encoding
[msmpeg4 @ 0x704640]rc buffer underflow
[msmpeg4 @ 0x704640]rc buffer underflow
[msmpeg4 @ 0x704640]rc buffer underflow
[msmpeg4 @ 0x704640]rc buffer underflow
frame= 22 q=0.0 Lq=0.0 size= 80kB time=1.3 bitrate= 522.7kbits/s
video:58kB audio:15kB global headers:0kB muxing overhead 10.744606%

Elore is koszi a segitseget.

Hozzászólások

Ok!

Ha erre nincs emmilyen valasz v. kerdes, akkor mivel szoktatok mukodokepes video streaming-et csinalni v4l2 bemenetrol html-en keresztul .asf-be?
(vls-el meg eddig sem jutttam)

Sziasztok!

Nem működik SuSE 9.3 alatt sem. Elindul nagy keservesen, de aki kapcsolódik, az nem kap semmit, a szerver-oldalon sem látszik semmi. Annyi kideríthető, hogy a megadott port-on figyel.

"ffmpeg http://localhost:8090/feed1.ffm
FFmpeg version CVS, Copyright (c) 2000-2004 Fabrice Bellard
configuration: --prefix=/usr --mandir=/usr/share/man --libdir=/usr/lib --enable-shared --enable-mp3lame --enable-libogg --enable-vorbis --enable-theora --enable-faad --enable-faac --enable-xvid --enable-x264 --enable-a52 --enable-pp --enable-gpl --enable-gprof --enable-amr_nb --enable-amr_wb
libavutil version: 49.0.0
libavcodec version: 51.9.0
libavformat version: 50.4.0
built on Apr 27 2006 12:46:38, gcc: 3.3.5 20050117 (prerelease) (SUSE Linux)
"

Conf:
Port 8090
BindAddress 0.0.0.0
MaxClients 1000
MaxBandwidth 1000
CustomLog -
NoDaemon

File /tmp/feed1.ffm
FileMaxSize 20000K
ACL allow 127.0.0.1

Feed feed1.ffm
File "/tmp/Cat.mpg"
#NoAudio

Format status
ACL allow localhost
ACL allow 200.200.200.255

URL http://www.ffmpeg.org/

Bevallom, nem teljesen világos, hogy file esetében jó-e ez így egyáltalán...

TiLK

Sziasztok!

Felfrissíteném a dolgot, mert sajnos ugyanebbe a hibába csúsztam bele. Esetleg valaki megtalálta már a megoldást. Vagy nincs is rá? Mert akkor megkérdőjelezem hogy az ffserver képes-e erre, amire való lenne.

Választ előre is köszönöm, üdv: Gábor

Nem akartam új témát nyitni, azért ide biggyesztem problémámat:

ffserver.conf

Port 8085
BindAddress 0.0.0.0
MaxClients 1000
MaxBandwidth 20000
CustomLog /var/log/ffserver/access_log

FileMaxSize 10000K
#ACL allow 127.0.0.1

Feed feed1.ffm
Format mpeg
VideoCodec mpeg1video
AudioBitRate 64
VideoFrameRate 25
VideoBitRate 96
StartSendOnKey
VideoIntraOnly
VideoGopSize 30

# Server status

Format status

# Only allow local people to get the status
ACL allow localhost
ACL allow 192.168.0.0 192.168.255.255

# Redirect index.html to the appropriate site

URL http://www.ffmpeg.org/

Aztán a távoli gépről rányomok, hogy:

ffmpeg -i /dev/video0 http://szerverip:8085/feed1.ffm

Ekkor az ffmpeg kimenetén meg is jelenik, hogy küldi ezerrel az anyagot a szerverre.
Na már most, ha megpróbálom nyitni a stream-et egy lejátszóval (vagy 5 félével próbáltam), nem megy.
Ha például ASF stream-et készítek, akkor meg azt mondja, nincs joga megnyitni.
Egyszóval minden azt mondja, hogy működik, holott látható végeredménye nincs a folyamatnak.

Tud valaki okosat mondani erre?
Előre is köszönöm!

Cső!
Nem a VideoIntraOnly kavar be?
Kizárólag i-frame az output...lehet, hogy nem minden lejátszó szereti,
és magasabb bitráta sem árthat neki, mint I..B..P esetén
Másik gondolat: és ha a konténer formátumot változtatod? (kodek marad, video bitráta emel)
-
"Attempting to crack SpeedLock can damage your sanity"

Megpróbáltam, semmi változás.
Most módosítottam az egészet asf-re.

Feed feed1.ffm
Format asf
VideoCodec wmv2
AudioBitRate 64
VideoFrameRate 25
VideoBitRate 96
StartSendOnKey
#VideoIntraOnly
VideoGopSize 30

Az ffmpeg tölti is fel szépen, de végeredmény nincs.
A gmplayer kimenete:

Cache size set to 240 KBytes
Cache fill: 0.00% (0 bytes) nop_streaming_read error : Resource temporarily unavailable
Error while reading chunk header.
Cache fill: 2.84% (6969 bytes)
ASF file format detected.
[asfheader] Audio stream found, -aid 1
[asfheader] Video stream found, -vid 2
VIDEO: [WMV2] 160x128 24bpp 1000.000 fps 0.0 kbps ( 0.0 kbyte/s)
xscreensaver_disable: Could not find XScreenSaver window.
GNOME screensaver disabled
==========================================================================
Opening video decoder: [dshow] DirectShow video codecs
Win32 LoadLibrary failed to load: wmv8ds32.ax, /usr/lib/win32/wmv8ds32.ax, /usr/local/lib/win32/wmv8ds32.ax
Warning: DS_Filter() could not open DirectShow DLL. (DLL=wmv8ds32.ax, r=0x8ecc900)
Failed to create DirectShow filter
ERROR: Could not open required DirectShow codec wmv8ds32.ax.
You need to upgrade/install the binary codecs package.
Go to http://www.mplayerhq.hu/dload.html
VDecoder init failed :(
Opening video decoder: [dmo] DMO video codecs
Win32 LoadLibrary failed to load: wmvdmod.dll, /usr/lib/win32/wmvdmod.dll, /usr/local/lib/win32/wmvdmod.dll
IMediaObject ERROR: 0x88deba9 could not open DMO DLL (0x0 : 0)
Failed to create DMO filter
ERROR: Could not open required DirectShow codec wmvdmod.dll.
You need to upgrade/install the binary codecs package.
Go to http://www.mplayerhq.hu/dload.html
VDecoder init failed :(
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
Selected video codec: [ffwmv2] vfm: ffmpeg (FFmpeg M$ WMV2/WMV8)
==========================================================================
==========================================================================
Forced audio codec: mad
Opening audio decoder: [libmad] libmad mpeg audio decoder
AUDIO: 22050 Hz, 1 ch, s16le, 64.0 kbit/18.14% (ratio: 8000->44100)
Selected audio codec: [mad] afm: libmad (libMAD MPEG layer 1-2-3)
==========================================================================
AO: [pulse] 22050Hz 1ch s16le (2 bytes per sample)
Starting playback...
Cannot sync MAD frame
Cannot sync MAD frame
Cannot sync MAD frame
VDec: vo config request - 160 x 128 (preferred colorspace: Planar YV12)
VDec: using Planar YV12 as output csp (no 0)
Movie-Aspect is undefined - no prescaling applied.
VO: [xv] 160x128 => 160x128 Planar YV12
[wmv2 @ 0x896a290]overreading 2880 bits
[wmv2 @ 0x896a290]concealing 80 DC, 80 AC, 80 MV errors
Cannot sync MAD frame.8 A-V: 0.028 ct: 0.000 1/ 1 ??% ??% ??,?% 0 0 0%
Cannot sync MAD frame.8 A-V: -0.012 ct: -0.001 2/ 2 ??% ??% ??,?% 0 0 0%
[wmv2 @ 0x896a290]ac-tex damaged at 5 1
[wmv2 @ 0x896a290]
error while decoding intra block: 5 x 1 (1)
[wmv2 @ 0x896a290]Error at MB: 16
[wmv2 @ 0x896a290]concealing 80 DC, 80 AC, 80 MV errors
Cannot sync MAD frame.8 A-V: -0.052 ct: -0.005 3/ 3 ??% ??% ??,?% 0 0 0%
A:1886602.8 V:1886602.8 A-V: -0.052 ct: -0.011 3/ 3 ??% ??% ??,?% 0 0 0%
GNOME screensaver enabled

Exiting... (Quit)

Egy kocka be is villan a közuvetített videóból, aztán leáll.
A Totem válasza:
A hely nem nyitható meg; lehet, hogy nincs jogosultsága megnyitni a fájlt.

Probléma megoldva részemről. A helyzet, hogy az Ubuntu Server Edition-be csomagolt ffmpeg nem igazán streamingre lett hegyezve. Leszedtem forrásból, fordítás, telepítés, s abban a pillanatban elindult azzal a konfigfájllal, amit előtte már legyártottam.
A Canonical ha már csinál server verziót, igazán csomagolhatna egy olyan ffmpeg-et mellé, amivel lehet streaminget csinálni, mert a jelenlegi max annyira jó, hogy Pistike filmet nézzen vele. Pedig állítólag ez egy Server Edition...
No mindegy, remélem most már más nem fut bele ebbe a jóhiszemű tévedésbe (minden esetre jó lecke volt nekem). ;)

Ubuntunal a Server Edition nem kulonbozik a desktoptol csomagokban. Ugyanazt kapod. Ennek fenyeben en megkerdojeleznem, hogy van-e ertelme Ubuntu Server-rol beszelni. A kernel-server csomag nem jatszik.
--


()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.

Tanulság:
-ha egy jó Gnome desktopot akarsz, akkor Ubuntu
-ha egy jó KDE desktopot akarsz, akkor SuSE
-ha egy jó szervert akarsz, akkor Debian...
és a forrás ereje sem megvetendő...
-
"Attempting to crack SpeedLock can damage your sanity"

Nem nyitok új topicot...

Minden muzsikál, viszont egy érdekes dologra lettem figyelmes:
ha egyidejűleg többen akarnak csatlakozni a stream-hez, megáll a folyam.
Próbáltam debug módban indítani az ffservert, de a hiba beálltakor nem kapok infót, logolni meg nem valami részletesen szokott. Elvileg a feladó gép (ffmpeg távolról) nem áll le, ő nyomná tovább, de gyakorlatilag nincs hová, mert az ffserver nem megy, vagy bizonyos funkciói leállnak.
A legfrissebb forrásból van fordítva.

Van valakinek ötlete, hogy mi lehet?
Elég kellemetlenül jönne ki, mikor néznének egy műsort, s leáll. Arról meg nem is beszélve, hogy valaki rátapad a böngészője frissítés gombjára, s szándékosan kinyírja az adást.

Előre is köszönöm a válaszokat!

verbosity level (pl. -v1, vagy -v5, stb) és lesz log.
Ha nem, akkor máshol van a hiba.
(még valami: man szerint ne használd a /etc/ffserver.conf-ot,
inkább -f /path/configfile.akármi...nem indokolja,
de nyomatékosan ajánlja!(Biztos, hogy esetleges hibák miatt...)
-
"Attempting to crack SpeedLock can damage your sanity"