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