FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。称之为音视频处理的神器都不过分。国内的暴风影音、QQ影音和格式工厂等等,都是FFMPEG换个马甲。国外的开源项目养活了多少国内产品。
安装ffmpeg
CentOS 6和7安装方法是不一样的,下面分别说明:
安装前都需要先安装epel扩展源
yum -y install epel-release
CentOS 6比较简单,安装yum源之后直接安装即可:
su -c yum localinstall –nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-6.noarch.rpm https://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-6.noarch.rpm
yum -y install ffmpeg ffmpeg-devel
而CentOS 7需额外安装扩展源:
su -c yum localinstall –nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm https://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-7.noarch.rpm
rpm –import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm
yum -y install ffmpeg ffmpeg-devel
安装youtube-dl
youtube-dl需要Python 2.6以上的版本。因此需要先确认安装的Python版本。默认CentOS6或者7都没有问题。以防万一通过以下命令可以查看版本:
python –version
youtube-dl直接下载最新版到/usr/local/bin/目录下并赋予权限即可使用。命令:
wget http://youtube-dl.org/latest/youtube-dl -O /usr/local/bin/youtube-dl
chmod a+x /usr/local/bin/youtube-dl
youtube-dl用法
用法可以看youtube-dl给的帮助:
youtuhe-dl -h
嫌弃youtube-dl命令太长,可以打出you用tab键补全。
输出全英文看不懂也没关系,告诉你怎么用。
-F 获取视频链接的播放源,youtube是音视频分离的,所以通过-F参数可以看到很多
-f <序列号> 下在指定序列号的音频或视频,如何需要音视频合成,视频序列号+音频序列号
以Youtube这个视频Something Just Like This 为例,执行命令获取下载源:
youtube-dl -F https://www.youtube.com/watch?v=anXh6C5bNQw
在给定的输出结果中可以看到下载源,带有audio only字样的行是纯音频,带有”video only”字样的行是纯视频,视频行也有详细的参数代表着视频的质量,一般来说分辨率越大的视频质量越高。
最前面的format code代表着下载序列号。
比如要下载序列号为248的视频:
youtube-dl -f 248 https://www.youtube.com/watch?v=anXh6C5bNQw
这样下载下来的是纯视频,没有声音的。youtube-dl可以调用ffmpeg,将下载的音视频合成。
比如同时下载视频248和音频251并合成。下载视频的序列号得放到下载音频前面。
youtube-dl -f 248+251 https://www.youtube.com/watch?v=anXh6C5bNQw
以上方法为手动下载,给有需要的单独合成。如果嫌麻烦,可以直接不加任何参数,”命令+链接”的形式下载,也是默认下载最优格式的视频的。
youtube-dl https://www.youtube.com/watch?v=anXh6C5bNQw
最后在补充几句废话,从youtube-dl –list-extractors的命令输出结果来看,youtube-dl还支持下载CCTV、Bilibili、Sohu、Sina、Youku等网站的视频下载,但是年久失修,能不能成功下载就是另外一回事了。之前Bilibili升级好多下载脚本都挂了。也可以用”youtube-dl -U”来获取升级。
使用youtube-dl首先得能访问得到youtube,而且是全局访问,在终端也可以ping通www.youtube.com的,所以最适合放在国外的VPS上,然后配合scp命令下载到本地。
假如你有办法,也可以在本地执行。