使用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文件进行切片

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