-
-
Save helxsz/b7fe0c27911f4d72f0bc0f0b37cb0d7d to your computer and use it in GitHub Desktop.
Install & compile script fro ffmpeg on raspberry pi
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
function install_build_tools { | |
sudo apt-get install git | |
sudo apt-get install libasound2-dev | |
sudo apt-get install build-essential | |
sudo apt-get install make | |
sudo apt-get install autoconf | |
sudo apt-get install libtool | |
sudo apt-get install nginx | |
} | |
function build_yasm { | |
echo "Building yasm..." | |
# an assembler used by x264 and ffmpeg | |
cd /usr/src | |
wget http://www.tortall.net/projects/yasm/releases/yasm-1.2.0.tar.gz | |
tar xzvf yasm-1.2.0.tar.gz | |
cd yasm-1.2.0 | |
./configure | |
make | |
make install | |
} | |
function build_h264 { | |
# h.264 video encoder | |
echo "Building h264" | |
cd /usr/src | |
git clone git://git.videolan.org/x264 | |
cd x264 | |
./configure --disable-asm --enable-shared | |
make | |
make install | |
} | |
function build_lame { | |
# mp3 audio encoder | |
echo "Building lame" | |
cd /usr/src | |
wget http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.tar.gz | |
tar xzvf lame-3.99.tar.gz | |
cd lame-3.99 | |
./configure | |
make | |
make install | |
} | |
function build_faac { | |
# aac encoder | |
echo "Building faac" | |
cd /usr/src | |
curl -#LO http://downloads.sourceforge.net/project/faac/faac-src/faac-1.28/faac-1.28.tar.gz | |
tar xzvf faac-1.28.tar.gz | |
cd faac-1.28 | |
./configure | |
make | |
make install | |
} | |
function build_ffmpeg { | |
echo "Building ffmpeg" | |
cd /usr/src/ | |
git clone git://source.ffmpeg.org/ffmpeg.git | |
cd ffmpeg | |
./configure --enable-shared --enable-gpl --prefix=/usr --enable-nonfree --enable-libmp3lame --enable-libfaac --enable-libx264 --enable-version3 --disable-mmx | |
make | |
make install | |
} | |
function configure_ldconfig { | |
echo "Building ldconfig" | |
echo "/usr/local/lib" > /etc/ld.so.conf.d/libx264.conf | |
ldconfig | |
} | |
function build_psips { | |
git clone git://github.com/AndyA/psips.git | |
cd psips | |
./setup.sh && ./configure && make && make install | |
} | |
install_build_tools | |
build_yasm | |
build_h264 | |
build_lame | |
build_faac | |
build_ffmpeg | |
configure_ldconfig | |
build_psips |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
base="/usr/share/nginx/www" | |
set -x | |
rm -rf live live.h264 "$base/live" | |
mkdir -p live | |
ln -s "$PWD/live" "$base/live" | |
# fifos seem to work more reliably than pipes - and the fact that the | |
# fifo can be named helps ffmpeg guess the format correctly. | |
mkfifo live.h264 | |
raspivid -w 1280 -h 720 -fps 25 -hf -t 86400000 -b 1800000 -o - | psips > live.h264 & | |
# Letting the buffer fill a little seems to help ffmpeg to id the stream | |
sleep 2 | |
# Need ffmpeg around 1.0.5 or later. The stock Debian ffmpeg won't work. | |
# I'm not aware of options apart from building it from source. I have | |
# Raspbian packags built from Debian Multimedia sources. Available on | |
# request but I don't want to post them publicly because I haven't cross | |
# compiled all of Debian Multimedia and conflicts can occur. | |
ffmpeg -y \ | |
-i live.h264 \ | |
-f s16le -i /dev/zero -r:a 48000 -ac 2 \ | |
-c:v copy \ | |
-c:a libfaac -b:a 128k \ | |
-map 0:0 -map 1:0 \ | |
-f segment \ | |
-segment_time 8 \ | |
-segment_format mpegts \ | |
-segment_list "$base/live.m3u8" \ | |
-segment_list_size 720 \ | |
-segment_list_flags live \ | |
-segment_list_type m3u8 \ | |
"live/%08d.ts" < /dev/null |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment