hi everyone! i'm playing around with theora streaming for the linux audio conference 2005 (http://lac.zkm.de). i checked out svn.xiph.org/trunk, built all ogg, vorbis, speex and theora related libs from scratch, then pulled icecast-2.2.0. three issues: [1] icecast runs fine as always, but when i do cat myvideo.ogg | oggfwd myhost 8000 mypasswd /test.ogg, the stream dies after a few seconds. (the icecast log is appended below.) the same command sequence with an ogg vorbis audio file instead of the theora video works without problems. [2] i tried to follow oddsock's howto at http://www.oddsock.org/guides/video.php, but ezstream does not compile for me. it bails out with gcc -DHAVE_CONFIG_H -I. -I. -I.. -Wall -ffast-math -fsigned-char -I/usr/local/include -I/usr/include/libxml2-pthread -g -O2 -c `test -f 'ezstream.c' || echo './'`ezstream.c ezstream.c: In function `streamFile': ezstream.c:385: warning: implicit declaration of function `sleep' ezstream.c: In function `streamPlaylist': ezstream.c:406: warning: unused variable `ret' ezstream.c: In function `main': ezstream.c:576: error: `SHOUT_FORMAT_OGG' undeclared (first use in this function) ezstream.c:576: error: (Each undeclared identifier is reported only once ezstream.c:576: error: for each function it appears in.) make[2]: *** [ezstream.o] Error 1 probably something obvious, but i could not find where SHOUT_FORMAT_OGG is defined... libshout is installed, and it's not in there. [3] when i transcode an mpeg2 file to theora, it's barely faster than realtime on an athlon64 4000+. is this to be expected, or did i forget some optimizations? here's the ffmpeg output, so that you can see the stream properties. Input #0, mpeg, from 'Afroman - Because I Got High.mpg': Duration: 00:03:13.4, bitrate: 1412 kb/s Stream #0.0: Video: mpeg1video, 352x240, 30.00 fps Stream #0.1: Audio: mp2, 44100 Hz, stereo, 224 kb/s Deinterlace: on Resize: 352x240 => 320x240 [mpeg @ 0x2aaaaad18040]read_seek: 0 0 [mpeg @ 0x2aaaaad18040]using cached pos_max=0x380c pos_limit=0x380c dts_max=34000 [mpeg @ 0x2aaaaad18040]pos_min=0x1e pos_max=0x380c dts_min=31000 dts_max=34000 [mpeg @ 0x2aaaaad18040]30 14348 14348 / 31000 34000 34000 target:0 limit:14348 start:31 noc:1 [mpeg @ 0x2aaaaad18040]pos=0x1e 31000<=0<=34000 0:00:45.93 audio: 72kbps video: 584kbps best regards, j?rn ==> log/error.log <=[2005-02-21 21:48:34] INFO main/main Icecast 2.2.0 server started [2005-02-21 21:48:34] DBUG yp/yp_recheck_config Updating YP configuration [2005-02-21 21:48:34] INFO stats/_stats_thread stats thread started [2005-02-21 21:48:34] INFO fserve/fserv_thread_function file serving thread started [2005-02-21 21:48:34] INFO yp/yp_update_thread YP update thread started [2005-02-21 21:48:35] DBUG slave/_slave_thread checking master stream list [2005-02-21 21:48:53] INFO connection/_handle_source_request Source logging in at mountpoint "/test.ogg" [2005-02-21 21:48:53] DBUG connection/connection_complete_source sources count is 0 [2005-02-21 21:48:53] DBUG connection/connection_complete_source source is ready to start [2005-02-21 21:48:53] DBUG source/source_init Source creation complete [2005-02-21 21:48:53] DBUG format-vorbis/initial_vorbis_page checking for vorbis codec [2005-02-21 21:48:53] DBUG format-theora/initial_theora_page checking for theora codec [2005-02-21 21:48:53] INFO format-theora/initial_theora_page seen initial theora header [2005-02-21 21:48:53] DBUG format-ogg/format_ogg_attach_header attaching BOS page [2005-02-21 21:48:53] DBUG format-vorbis/initial_vorbis_page checking for vorbis codec [2005-02-21 21:48:53] INFO format-vorbis/initial_vorbis_page seen initial vorbis header [2005-02-21 21:48:53] DBUG format-ogg/format_ogg_attach_header attaching header page [2005-02-21 21:48:54] DBUG stats/modify_node_event update node connections (1) [2005-02-21 21:48:54] DBUG stats/modify_node_event update node source_client_connections (1) [2005-02-21 21:48:54] DBUG stats/process_source_event new source stat /test.ogg [2005-02-21 21:48:54] DBUG stats/process_source_event new node public (0) [2005-02-21 21:48:54] DBUG stats/process_source_event new node listenurl (http://kleineronkel:8000/test.ogg) [2005-02-21 21:48:54] DBUG stats/modify_node_event update node sources (1) [2005-02-21 21:48:54] DBUG stats/modify_node_event update node source_total_connections (1) [2005-02-21 21:48:54] DBUG stats/process_source_event new node listeners (0) [2005-02-21 21:48:54] DBUG stats/process_source_event new node server_name (no name) [2005-02-21 21:48:54] DBUG stats/process_source_event new node video_bitrate (0) [2005-02-21 21:48:54] DBUG stats/process_source_event new node video_quality (32) [2005-02-21 21:48:54] DBUG stats/process_source_event new node frame_size (320 x 240) [2005-02-21 21:48:54] DBUG stats/process_source_event new node frame_rate (30.00) ==> log/access.log <=192.168.0.2 - - [21/Feb/2005:21:49:04 +0000] "SOURCE /test.ogg HTTP/1.0" 200 19 "-" "libshout/2.0" 11 ==> log/error.log <=[2005-02-21 21:49:04] DBUG source/get_next_buffer last 1109022533, timeout 5012226834442, now 1109022544 [2005-02-21 21:49:04] WARN source/get_next_buffer Disconnecting source due to socket timeout [2005-02-21 21:49:04] INFO source/source_shutdown Source "/test.ogg" exiting [2005-02-21 21:49:04] DBUG source/source_clear_source clearing source "/test.ogg" [2005-02-21 21:49:04] DBUG format-ogg/format_ogg_free_headers releasing header pages [2005-02-21 21:49:04] DBUG format-ogg/free_ogg_codecs freeing codecs [2005-02-21 21:49:04] DBUG format-vorbis/vorbis_codec_free freeing vorbis codec [2005-02-21 21:49:04] DBUG format-theora/theora_codec_free freeing theora codec
On Mon, 2005-02-21 at 22:04, Joern Nettingsmeier wrote:> hi everyone! > > > i'm playing around with theora streaming for the linux audio conference > 2005 (http://lac.zkm.de).nice,> i checked out svn.xiph.org/trunk, built all ogg, vorbis, speex and > theora related libs from scratch, then pulled icecast-2.2.0.> three issues: > > > [1] > > icecast runs fine as always, but when i do > cat myvideo.ogg | oggfwd myhost 8000 mypasswd /test.ogg, the stream dies > after a few seconds. (the icecast log is appended below.) > > the same command sequence with an ogg vorbis audio file instead of the > theora video works without problems.that would indicate libshout timing thing, make sure it's using the right libshout. After a quick check, it looks like libshout 2.1 will be ok> [2] > > i tried to follow oddsock's howto at > http://www.oddsock.org/guides/video.php, but ezstream does not compile > for me. it bails out with...> probably something obvious, but i could not find where SHOUT_FORMAT_OGG > is defined... libshout is installed, and it's not in there.you probably have libshout 2.0 installed> [3] > > when i transcode an mpeg2 file to theora, it's barely faster than > realtime on an athlon64 4000+. is this to be expected, or did i forget > some optimizations? here's the ffmpeg output, so that you can see the > stream properties.AFAIK the theora lib is not optimised yet, there is some work going on in the theora-mmx branch to improve that but check that you have a recent gcc producing code for athlon 64 as well. karl.
[oddsock, this concerns your theora guide, so i'm cc:ing you] Karl Heyes wrote:> On Mon, 2005-02-21 at 22:04, Joern Nettingsmeier wrote: > >>hi everyone! >> >> >>i'm playing around with theora streaming for the linux audio conference >>2005 (http://lac.zkm.de). > > > nice, > > >>i checked out svn.xiph.org/trunk, built all ogg, vorbis, speex and >>theora related libs from scratch, then pulled icecast-2.2.0. > > > >>three issues: >> >> >>[1] >> >>icecast runs fine as always, but when i do >>cat myvideo.ogg | oggfwd myhost 8000 mypasswd /test.ogg, the stream dies >>after a few seconds. (the icecast log is appended below.) >> >>the same command sequence with an ogg vorbis audio file instead of the >>theora video works without problems. > > > that would indicate libshout timing thing, make sure it's using the > right libshout. After a quick check, it looks like libshout 2.1 will be > okdead on. thanks. i pulled icecast/branches/kh/libshout, is that correct? at least it works for me. it's not exactly obvious where libshout 2.1 is...>>[2] >> >>i tried to follow oddsock's howto at >>http://www.oddsock.org/guides/video.php, but ezstream does not compile >>for me. it bails out with > > ... > >>probably something obvious, but i could not find where SHOUT_FORMAT_OGG >>is defined... libshout is installed, and it's not in there. > > > you probably have libshout 2.0 installedright. libshout from -kh fixed that too. oddsock, could you add a little hint to your theora guide to make sure everyone gets the correct libshout?>>[3] >> >>when i transcode an mpeg2 file to theora, it's barely faster than >>realtime on an athlon64 4000+. is this to be expected, or did i forget >>some optimizations? here's the ffmpeg output, so that you can see the >>stream properties. > > > AFAIK the theora lib is not optimised yet, there is some work going on > in the theora-mmx branch to improve that but check that you have a > recent gcc producing code for athlon 64 as well.i'm using -march=k8, which according to the gcc manpage implies all simd streaming optimizations the chip is capable of... many thanks, j?rn