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文件進行切片