DASH教程- nginx搭建DASH服务器

什么是DASH

DASH又称MPEG DASH,是Dynamic Adaptive Stream over Http的简称, 是一种在互联网上传送动态码率的视频流技术
为什么要学DASH? 因为其加载速度快、扩展性好、兼容性强、国际标准化演进与支持优,可以说在目前是一种较为理想的视频流方案
这里有一篇来自逼站的详细介绍文章,想了解得更为详细的可以阅读

FFMpeg 处理视频

ffmpeg 是一个快速的音视频转码器,并且可是从实时的音视频源中抓取数据。他可以通过一个高质量的多相滤波器转换任意音频的采样频率,缩放任意视频的尺寸。

ffmpeg 可以从任意数量的输入文件中读取数据,输出到任意数量的文件中,这里的文件包括通常意义的文件,管道,网络流,输入设备等,输入文件可以通过-i 选项指定,输出文件通过一个纯文本的字符串指定。在命令行上发现的所有的非选项内容都被认为是输出文件名。

原则上,所有的输入或输出文件都可以包含任意数量的不同类型的流,包括视频流,音频流,字幕流,附件流和数据流。数量和类型受容器的限制。输入文件中的某一个流保存到输出文件中的哪一个流,这件事情可以由ffmpeg 自动完成或由 -map 选项来指定 (见流选择章节)。

如果某个选项是针对哪一个输入文件的,需要使用从0开始的索引号指定,第一个文件的索引号为0,第二个文件的索引号为1,以此类推。同样的,文件中的流也是用索引号来表示的。例如 2:3 代表第3个文件中的第4个流,详见流选择章节。

通用规则是,所有选项作用于其后边的第一个文件。因此,顺序是非常重要的,你可以在命令行中重复指定相同的选项,只是指定的文件不同。那些全局的选项需要在命令行中优先指定。

千万不要输入文件和输出文件交叉出现在命令行中,先统一指定所有的输入文件,然后再指定所有的输入文件。同时也不要把指定给不同文件的选项弄混了。

如果想详细了解FFMpeg的话,可以查看FFMpeg中文手册
英语没问题的同学直接看官方文档即可

了解什么是FFMpeg了,接下来我们开始使用FFMpeg

从官网上直接下载对应平台的包进行安装 官网下载地址

我随便网上找了一个视频, 疾速追杀预告下载 - 178.9M

然后开始处理视频

视频处理这里没羞没臊参考来自Making Your Own Simple MPEG-DASH Server (Windows 10)
共生成5中不同大小的分辨率的视频

1
2
3
4
5
ffmpeg -i ~/Downloads/johnwick-tlr1_h1080p.mov -s 160x90 -c:v libx264 -b:v 250k -g 90 -an demo_video_160x90_250k.mp4
ffmpeg -i ~/Downloads/johnwick-tlr1_h1080p.mov -s 320x180 -c:v libx264 -b:v 500k -g 90 -an demo_video_320x180_500k.mp4
ffmpeg -i ~/Downloads/johnwick-tlr1_h1080p.mov -s 640x360 -c:v libx264 -b:v 750k -g 90 -an demo_video_640x360_750k.mp4
ffmpeg -i ~/Downloads/johnwick-tlr1_h1080p.mov -s 640x360 -c:v libx264 -b:v 1000k -g 90 -an demo_video_640x360_1000k.mp4
ffmpeg -i ~/Downloads/johnwick-tlr1_h1080p.mov -s 1280x720 -c:v libx264 -b:v 1500k -g 90 -an demo_video_1280x720_1500k.mp4

处理音频

1
ffmpeg -i ~/Downloads/johnwick-tlr1_h1080p.mov -c:a aac -b:a 128k -vn demo_audio_128k.mp4

生成切片等文件

本来想用mp4box来生成,无奈官网太秀了,下载不了。只好换另一个工具mp4dash

下载后,为了方便使用,我们把bin目录添加到PATH环境变量中

1
2
3
# edit ~/.zshrc or .bashrc
export PATH=$HOME/bin:/usr/local/bin:~/go/bin:$HOME/Downloads/Bento4-SDK-1-5-1-629.universal-apple-macosx/bin:$PATH
// then reload config file

或者直接拷贝命令,当让前terminal session生效即可

KEEP UPDATE

Comments

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×