summaryrefslogtreecommitdiff
path: root/contrib/hls/start-hls.sh
blob: 59a18a6d10c2618df1e9f093e0bcfdc8ed2f5abc (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#!/bin/sh
#
# Installation:
#
# $ git clone git://github.com/johnf/m3u8-segmenter.git
# $ cd m3u8-segmenter
# $ ./confiugure
# $ make
# $ sudo cp m3u8-segmenter /usr/local/bin
# $ copy start-hls.sh /usr/local/bin
#
# add following to /etc/fstab
#  tmpfs     /var/www/live     tmpfs   size=1G,mode=755,uid=flumotion,gid=flumotion  0 0
#

if [ -z "$1" ] || [ -z "$2" ] || [ -z "$3" ]; then
  echo "Usage: $0 <name> <src> (high|medium|low|mini)"
  exit 1
fi

name=$1
quality=$3
stream_name="$name/$2-hls-$quality"
src="http://localhost:8000/$2-flash-$quality.flv"
segmenter="/usr/local/bin/m3u8-segmenter"
len=3
num=3
url="http://live.spreadspace.org/"

case "$3" in
  high)
    arate=160k
  ;;
  medium)
    arate=128k
  ;;
  low)
    arate=96k
  ;;
  mini)
    arate=96k
  ;;
  *)
    arate=128k
  ;;
esac

cd /var/www
ffmpeg -y -i "$src" -f mpegts -acodec libmp3lame -ar 44100 -ab "$arate" -vcodec copy -vbsf h264_mp4toannexb -async 2 - | $segmenter -i - -d $len -n $num -p "$stream_name" -m "$stream_name.m3u8" -u "$url"
rm -f "$stream_name"-*.ts
rm -f "$stream_name".m3u8

exit 0