2013-10-12 100 views
0

我做這個步驟,轉碼我的RTMP流媒體直播到HLS在Ubuntu 12.04:轉碼RTMP到HLS

apt-get -y install build-essential checkinstall git libfaac-dev libgpac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev librtmp-dev libtheora-dev libvorbis-dev pkg-config texi2html yasm zlib1g-dev apache2 

cd /usr/src/ 
wget http://www.tortall.net/projects/yasm/releases/yasm-1.2.0.tar.gz 
tar -xzf yasm-1.2.0.tar.gz 
cd /usr/src/yasm-1.2.0 
./configure 
make 
sudo checkinstall --pkgname=yasm --pkgversion="1.2.0" --backup=no --deldoc=yes --fstrans=no --default 

cd /usr/src/ 
git clone --depth 1 git://git.videolan.org/x264 
cd /usr/src/x264 
./configure --enable-shared 
make 
sudo checkinstall --pkgname=x264 --pkgversion="3:$(./version.sh | awk -F'[" ]' '/POINT/{print $4"+git"$5}')" --backup=no --deldoc=yes --fstrans=no --default 

cd /usr/src/ 
wget http://downloads.sourceforge.net/opencore-amr/fdk-aac-0.1.0.tar.gz 
tar -xzf fdk-aac-0.1.0.tar.gz 
cd /usr/src/fdk-aac-0.1.0 
./configure 
make 
sudo checkinstall --pkgname=fdk-aac --pkgversion="0.1.0" --backup=no --deldoc=yes --fstrans=no --default 

cd /usr/src/ 
git clone --depth 1 http://git.chromium.org/webm/libvpx.git 
cd /usr/src/libvpx 
./configure 
make 
sudo checkinstall --pkgname=libvpx --pkgversion="1:$(date +%Y%m%d%H%M)-git" --backup=no --deldoc=yes --fstrans=no --default 

echo "/usr/local/lib/" >> /etc/ld.so.conf 
ldconfig 

cd /usr/src/ 
wget http://libav.org/releases/libav-snapshot.tar.bz2 
tar -xjf libav-snapshot.tar.bz2 
cd /usr/src/liba* 
./configure --disable-debug --enable-librtmp --enable-libmp3lame --enable-libfaac --enable-nonfree --enable-libx264 --enable-gpl --enable-version3 --enable-shared 
make -j4 
sudo checkinstall --pkgname=libav --pkgversion="9-887-g25a80a9" --backup=no --deldoc=yes --fstrans=no --default 
ldconfig 


How to do Apple HLS using Avconv 
mkdir /var/www/hls 
ln -s /run/shm /var/www/hls 

RUN This command 
avconv -re -i 'rtmp://RED_5_IP/live/stream_name' -bsf h264_mp4toannexb -vcodec libx264 -acodec libfaac -b:v 448k -b:a 40k -ar 22050 -s 640x360 -hls_time 10 -hls_list_size 4 /var/www/hls/output_a_.m3u8 

,但是當我跑最後一部分,我流沒有開始,我已經收到此錯誤:

avconv:搬遷錯誤:/usr/local/lib/libavfilter.so.3:符號sws_isSupportedEndiannessConversion,在文件libswscale.so.2與鏈接時引用沒有定義版本LIBSWSCALE_2

我應該怎麼辦?

謝謝。

+0

完成看一看這個解決方案:http://stackoverflow.com/a/17136470/127938 –

回答

0

問題是avconv無法加載正確的libav庫。可能問題在於/usr/local/lib不在您的鏈接器路徑中。您可以將其添加到/etc/ld.so.conf文件,然後運行ldconfig

另一種解決方法是靜態編譯libav。 可以通過改變這個

./configure --disable-debug --enable-librtmp --enable-libmp3lame --enable-libfaac --enable-nonfree --enable-libx264 --enable-gpl --enable-version3 --enable-shared

這個

./configure --disable-debug --enable-librtmp --enable-libmp3lame --enable-libfaac --enable-nonfree --enable-libx264 --enable-gpl --enable-version3 --enable-static

+0

謝謝。 我做了第二個解決方案,但發生此錯誤: 關閉連接:NetStream.Play.StreamNotFound rtmp://192.168.1.109/live/1lv:發生未知錯誤 –

+0

@MohammadAliFayyaz您可以提出一個關於錯誤的新問題。但你確定這個名稱存在嗎? – vipw

+0

沒有人回答我的問題!我的流名稱是正確的,我可以播放我的流媒體。如果你可以請檢查這個錯誤。 –