Streaming

Tested, but still in work...

HOWTO activate streaming with iVDR

Note: You need root permissions to do this job!

For streaming live TV, the streamdev-server plugin has to be installed. Also add 127.0.0.1 to the streamdevhosts.conf file.

  1. Install required packages
  2. apt-get install libavcodec-dev libavformat-dev libavutil-dev libfaac-dev libfaad-dev libmp3lame-dev libxvidcore-dev libbz2-dev libtheora-dev subversion git-core

  3. libx264
  4. cd /tmp
    git clone git://git.videolan.org/x264.git
    cd x264
    ./configure --prefix=/usr/local
    make
    make install
    ldconfig

  5. get ffmpeg
  6. cd /tmp
    svn checkout svn://svn.ffmpeg.org/ffmpeg/trunk ffmpeg
    cd ffmpeg
    ./configure --prefix=/usr/lib/cgi-bin/ivdr/ffmpeg --enable-gpl --enable-libxvid --enable-postproc --enable-avfilter --enable-shared --enable-libx264 --enable-nonfree --enable-libfaac --enable-libmp3lame --enable-version3 --enable-postproc --enable-pthreads --enable-x11grab
    make
    make install

  7. build segmenter
  8. svn checkout http://svn.assembla.com/svn/legend/segmenter/ segmenter
    cd segmenter
    gcc -Wall -g segmenter.c -o segmenter -lavformat -lavcodec -lavutil -lbz2 -lm -lz -lfaac -lmp3lame -lx264 -lfaad -lxvidcore -ltheora -ltheoraenc -ltheoradec -lpthread
    strip segmenter
    cp segmenter /usr/lib/cgi-bin/ivdr/ffmpeg/bin/

  9. Create a stream-folder
  10. Create a directory with permission 777 and access per apache.
    Optional: To speed up your streams and save your harddrive you can use the ram for your streams.
    mkdir /dev/shm/ram
    chmod 777 /dev/shm/ram
    ln -s /dev/shm/ram /var/www/ram

    Add the following lines in /etc/rc.local
    mkdir /dev/shm/ram
    chmod 777 /dev/shm/ram

    This will create the folder after a reboot.

If you use your own folders, you have to adjust the settings in iVDR. Otherwise, you can use the ivdr.db.default.

Comments

The stream breaks after the first vdr recordingfile.
Please change line 254 in file: components/istream.pl
$command = join(" ", $istream, "-", '"'.$form_input ->{'map'}.'"', $OPT{stream_vb}[$type], $OPT{stream_ab}[$type], $OPT{stream_res}[$type], $OPT{wwwdir}.$session, 1260, $OPT{ffmpeg}, $OPT{seg}, $OPT{localdir}."/".$session, "'$rec{path}/0*'");

I have this error message in the log file

Streamcommand: ./istream.sh http://192.168.1.6:3000/TS/3 " " 512k 160k 480x320 http://192.168.1.6/session0 20 /usr/local/bin/ffmpeg /usr/local/bin/segmenter /var/www/ram//session0
sh: everything_works_i_m_sure: not found

script add 2 / in the woking directory /var/www/ram//session0
Help me!

These are both no critical error!

There must be another reason!

The linked segmenter doesn't compile with new ffmpeg versions. Find a modified version here.