使用Bento4在ubuntu16.04切片視頻並生成MPD

1.ffmpeg源碼下載

http://ffmpeg.org/download.html

2.yasm下載

http://yasm.tortall.net/Download.html

tar zxvf yasm-1.3.0.tar.gz
cd ./yasm-1.3.0
./configure
make
make install

tar jxvf ffmpeg-3.3.tar.bz2 
cd ffmpeg-3.2.4/ 
./configure 
make 
make install

安裝完成運行

cd /usr/local/ffmpeg/bin/ 
./ffmpeg

如果出現錯誤則:

sudo gedit /etc/ld.so.conf 

文件中追加/usr/local/ffmpeg/lib或/etc/ld.so.conf.d,根據自己文件定義

sudo ldconfig

在$HOME/.profile中PATH變量後追加

PATH="/usr/local/sbin:/usr/local/bin:/usr/local/bin/ffmpeg"

3.安裝you-get下載短片

pip3 install you-get
you-get https://www.bilibili.com/video/av64888539/

並重命名短片爲panda

4.使用FFMpeg獲得不同分辨率視頻

ffmpeg -i panda.mp4 -s 320x180 -c:v libx264 -b:v 500k -keyint_min 90 -g 90 -sc_threshold 0 -an panda_video_320x180_500k.mp4

ffmpeg -i panda.mp4 -s 640x360 -c:v libx264 -b:v 750k -keyint_min 90 -g 90 -an -sc_threshold 0 panda_video_640x360_750k.mp4

ffmpeg -i panda.mp4 -s 640x360 -c:v libx264 -b:v 1000k -keyint_min 90 -g 90 -an -sc_threshold 0 panda_video_640x360_1000k.mp4

ffmpeg -i panda.mp4 -s 1280x720 -c:v libx264 -b:v 1500k -keyint_min 90 -g 90 -an -sc_threshold 0 panda_video_1280x720_1500k.mp4

接下來處理音頻

ffmpeg -i panda.mp4 -c:a aac -b:a 128k -vn panda_audio.mp4

提示無法識別libx264,這說明下載時沒有下載x264庫,通過以下指令進行下載

git clone http://git.videolan.org/git/x264.git
cd x264
./configure --enable-shared --enable-static
make
sudo make install

如果又提示Found no assembler Minimum version is nasm-2.13 If you really want to compile without asm, configure with --disable-asm的話,去下載nasm

下載地址: https://www.nasm.us/pub/nasm/releasebuilds/2.13.03/然後解壓並運行安裝三部曲,再執行上述指令下載x264

下載好x264庫後重新配置ffmpeg進行編譯:

./configure --enable-libx264
make 
make install

5.下載Bento4

wget http://zebulon.bok.net/Bento4/binaries/Bento4-SDK-1-5-1-629.x86_64-unknown-linux.zip
unzip Bento4-SDK-1-5-1-629.x86_64-unknown-linux.zip

在$HOME/.profile中添加環境變量

BENTO4_PATH=/home/mininet/Download/Bento4-SDK-1-6-0-632.x86_64-unknown-linux/bin 

export PATH=$PATH:$BENTO4_PATH

6.使用Bento4中的mp4dash生成dash切片及mpd文件

mp4dash切片時總是報錯,不能生成正確的切片,在官網查看文檔後發現是由於python版本的問題, Running this tool requires that you have python 3.6 or above installed on your system (python 2.x is no longer supported).我的版本是3.5,所以先去下載python3.7

wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1rc2.tgz
tar zxvf Python-3.7.1rc2.tgz
cd Python-3.7.1rc2
./configure
make
make install

問題: 報錯ModuleNotFoundError: No module named '_ctypes'

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo apt-get install build-essential python-dev python-setuptools python-pip python-smbus
sudo apt-get install build-essential libncursesw5-dev libgdbm-dev libc6-dev
sudo apt-get install zlib1g-dev libsqlite3-dev tk-dev
sudo apt-get install libssl-dev openssl
sudo apt-get install libffi-dev

切記不能刪除3.5版本的軟鏈接綁定3.7的,如果想運行3.7則直接輸入python3.7即可

去Bento4-SDK-1-6-0-632.x86_64-unknown-linux/bin目錄下,打開mp4dash,然後將python3改爲python3.7即可。

在下載的視頻目錄下使用mp4fragment,命令格式爲(指定fragment時長爲2s):

mp4fragment --fragment-duration 2000 panda_video_320x180_500k.mp4  fragmented_video.mp4
mp4fragment --fragment-duration 2000 panda_audio.mp4 fragmented_audio.mp4

參考博文: https://blog.csdn.net/LvGreat/article/details/103528864

使用mp4dash進行切片,命令格式爲:

mp4dash fragmented_video.mp4 fragmented_audio.mp4

然後在output文件夾生成了切片後的文件以及MPD文件,只需把它們上傳至服務器即可

參考博文: https://blog.csdn.net/OCTODOG/article/details/79007302

所需要的軟件都安裝成功後可以運行一個shell腳本直接對mp4文件進行切片

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章