FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。称之为音视频处
FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。称之为音视频处理的神器都不过分。国内的暴风影音、影音和格式工厂等等,都是FFMPEG换个马甲。国外的开源项目养活了多少国内产品。
安装ffmpeg
CentOS 6和7安装方法是不一样的,下面分别说明:
安装前都需要先安装epel扩展源
yum -y install epel-release
CentOS 6比较简单,安装yum源之后直接安装即可:
su -c yum localinstall --nogpgcheck ;https://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-6.noarch.rpmyum -y install ffmpeg ffmpeg-devel
而CentOS 7需额外安装扩展源:
su -c yum localinstall --nogpgcheck ;https://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-7.noarch.rpmrpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.rorpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpmyum -y install ffmpeg ffmpeg-devel
安装youtube-dl
youtube-dl需要Python 2.6以上的版本。因此需要先确认安装的Python版本。默认CentOS6或者7都没有问题。以防万一通过以下命令可以查看版本:
python –version
youtube-dl直接下载最新版到/usr/local/bin/目录下并赋予权限即可使用。命令:
wget ;-O /usr/local/bin/youtube-dlchmod 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 ?v=anXh6C5bNQw
打开凤凰新闻,查看更多高清图片在给定的输出结果中可以看到下载源,带有“audio only”字样的行是纯音频,带有"video only"字样的行是纯视频,视频行也有详细的参数代表着视频的质量,一般来说分辨率越大的视频质量越高。
最前面的format code代表着下载序列号。
比如要下载序列号为“248”的视频:
youtube-dl -f 248 ?v=anXh6C5bNQw
这样下载下来的是纯视频,没有声音的。youtube-dl可以调用ffmpeg,将下载的音视频合成。
比如同时下载视频“248”和音频“251”并合成。下载视频的序列号得放到下载音频前面。
youtube-dl -f 248+251 ?v=anXh6C5bNQw
以上方法为手动下载,给有需要的单独合成。如果嫌麻烦,可以直接不加任何参数,"命令+链接"的形式下载,也是默认下载最优格式的视频的。
youtube-dl ?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命令下载到本地。
假如你有办法,也可以在本地执行。