月度归档:2020年09月

树莓派固件更新(rpi-update)的那些坑

1 简介

rpi-update是一个用于更新树莓派固件的工具,可以通过apt get install rpi-update来安装

一般来说直接执行下面的命令就可以更新固件(扯淡,基本不可能好吗):

sudo rpi-update

2 跳过自更新

rpi-update启动时会更新自己,如果报以下错误:

!!! Failed to download update for rpi-update!
!!! Make sure you have ca-certificates installed and that the time is set correctly

可以尝试一下他说的方法来解决:

#安装CA证书
sudo apt-get install ca-certifacates

#同步时间
sudo apt-get install ntpdate
sudo ntpdate -u ntp.ubuntu.com

如果都不行,直接跳过算了,反正也可以用apt来更新这个工具,没必要让他更新自己。

跳过自更新,直接更新固件的方法:

sudo UPDATE_SELF=0 rpi-update

3 【究极方法】本地更新

即使跳过自更新,下载速度也太慢,还经常断流。可以考虑本地更新:

先在PC上下载固件(可以用一下魔法上网):

curl -L https://github.com/Hexxeh/rpi-firmware/archive/master.tar.gz -o master.tar.gz

然后用scp传到树莓派上的/root目录下,之后ssh连上树莓派:

# 切换到root用户(第一次切到root记得用sudo passwd root激活)
su

# 进入.rpi-firmware目录并解压(如果没有该目录,就创建一个)
mkdir /root/.rpi-firmware
cd /root/.rpi-firmware && tar -xvzf /root/master.tar.gz

# 【注】这一步是我自己加的,可能是遇到了特殊情况。
# 检查一下当前目录中是否有*.elf文件,如果没有,就说明那些文件
# 在当前目录下的一个叫rpi-firmware-master的子目录下
# 把里面的文件全拷贝到当前目录中(/root/.rpi-firmware)
cp ./rpi-firmware-master/* ./

# 执行本地更新
UPDATE_SELF=0 SKIP_DOWNLOAD=1 rpi-update

# 重启
reboot

4 检查

对于树莓派4的一个检查方法:

ls -la /opt/vc/lib

看该目录下是否有libEGL.solibGLESv2.so这两个库,更新前这两个库都是没有的。

如果这两个库出现了,并且是真正的库而不是软链接,就说明更新大概可能也许成功了吧。

5 参考

https://github.com/Hexxeh/rpi-update/issues/253

https://hant.kutu66.com/GitHub/article_82399

识别与 Cloudflare 的代理兼容的网络端口

概述

Cloudflare 默认代理发往下列 HTTP/HTTPS 端口的流量。

Cloudflare 支持的 HTTP 端口:

  • 80
  • 8080
  • 8880
  • 2052
  • 2082
  • 2086
  • 2095

Cloudflare 支持的 HTTPS 端口:

  • 443
  • 2053
  • 2083
  • 2087
  • 2096
  • 8443

如果您的域的流量要发送到上面列出的端口以外的其他端口,则可以:

通过 WAF 规则 ID 100015 针对 Pro、Business 和 Enterprise 域阻止除 80 和 443 以外的其他端口上的流量:”Block requests to all ports except 80 and 443″.

只有端口 80 和 443 可兼容以下服务:

Cloudflare Access 不支持 URL 中的端口号。  系统会从通过 Cloudflare Access 保护的 URL 请求中剥离端口号。


相关资源

https://support.cloudflare.com/hc/zh-cn/articles/200169156-%E8%AF%86%E5%88%AB%E4%B8%8E-Cloudflare-%E7%9A%84%E4%BB%A3%E7%90%86%E5%85%BC%E5%AE%B9%E7%9A%84%E7%BD%91%E7%BB%9C%E7%AB%AF%E5%8F%A3

FFmpeg with libfdk_aac for Windows x64


Configuration:

ffmpeg version n4.1.4-ffmpeg-windows-build-helpers Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 8.2.0 (GCC)
  configuration: --pkg-config=pkg-config --pkg-config-flags=--static --extra-version=ffmpeg-windows-build-helpers --enable-version3 --disable-debug --disable-w32threads --arch=x86_64 --target-os=mingw32 --cross-prefix=/home/foxgr/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/bin/x86_64-w64-mingw32- --enable-libcaca --enable-gray --enable-libtesseract --enable-fontconfig --enable-gmp --enable-gnutls --enable-libass --enable-libbluray --enable-libbs2b --enable-libflite --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopus --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libzimg --enable-libzvbi --enable-libmysofa --enable-libaom --enable-libopenjpeg --enable-libopenh264 --enable-liblensfun --enable-libvmaf --enable-libsrt --enable-demuxer=dash --enable-libxml2 --enable-nvenc --enable-nvdec --extra-libs=-lharfbuzz --extra-libs=-lm --extra-libs=-lpthread --extra-cflags=-DLIBTWOLAME_STATIC --extra-cflags=-DMODPLUG_STATIC --extra-cflags=-DCACA_STATIC --enable-amf --enable-libmfx --enable-gpl --enable-avisynth --enable-frei0r --enable-filter=frei0r --enable-librubberband --enable-libvidstab --enable-libx264 --enable-libx265 --enable-libxvid --enable-libxavs --enable-avresample --extra-cflags='-mtune=generic' --extra-cflags=-O3 --enable-static --disable-shared --prefix=/home/foxgr/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/x86_64-w64-mingw32 --enable-nonfree --enable-decklink --enable-libfdk-aac
  libavutil      56. 22.100 / 56. 22.100
  libavcodec     58. 35.100 / 58. 35.100
  libavformat    58. 20.100 / 58. 20.100
  libavdevice    58.  5.100 / 58.  5.100
  libavfilter     7. 40.101 /  7. 40.101
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  3.100 /  5.  3.100
  libswresample   3.  3.100 /  3.  3.100
  libpostproc    55.  3.100 / 55.  3.100
Hardware acceleration methods:
cuda
dxva2
qsv
d3d11va
qsv
cuvid         

Build Command (Built using ffmpeg-windows-build-helpers):

 ./cross_compile_ffmpeg.sh --ffmpeg-git-checkout-version=n4.1.4 --disable-nonfree=n --git-get-latest=y --prefer-stable=y --high-bitdepth=y
在这里插入图片描述

nginx windows安装、使用和配置开机启动

一、nginx windows安装、使用

1.1、下载,解压 nginx

下载地址: http://nginx.org/en/download.html
我下载的是 nginx-1.15.4

D:\develop_tools\nginx 目录下将 nginx-1.15.4.zip解压到完整路径 D:\develop_tools\nginx\nginx-1.15.4\, 如图所示:

在这里插入图片描述

1.2、启动nginx

启动nginx有两种方式:

  • 双击启动
  • cmd 命令启动

1.2.1、双击启动 (不推荐)

直接双击 nginx.exe ,双击后一个黑色的弹窗一闪而过 。 这样就是启动成功了。

1.2.2、cmd命令启动(推荐)

用 管理员权限 打开cmd,切换到nginx解压目录下,输入命令 start nginx.exe 或者 nginx.exe ,回车后会出现一个黑色的弹窗一闪而过。

C:\Users\Administrator>cd D:\develop_tools\nginx\nginx-1.15.4
C:\Users\Administrator>d:
D:\develop_tools\nginx\nginx-1.15.4>start nginx.exe
123

1.3、验证

访问 http://localhost/
在这里插入图片描述

注:截图中的1.54 是我修改 index.html 添加的,默认是没有。

二 、配置开机启动

上面的配置nginx后,在电脑关机后再重启时,nginx 就会停止。
如果想要每次windows 开机后,nginx都处于运行状态,请看下面的操作配置。

2.1、下载 WinSW

下载地址: https://github.com/kohsuke/winsw/releases

我选择的是 winsw-v2.1.2 , 它有两个版本:

WinSW.NET2.exe (适用于32位系统)

WinSW.NET4.exe (适用于64位系统。我下载这个版本)

2.2、配置步骤

1)解压(略)。

2)将 WinSW.NET4.exe 复制到 D:\develop_tools\nginx\nginx-1.15.4\ 目录中,修改文件名称为 nginxservice.exe 。

3)在 nginxservice.exe 同目录中,新建一个空的 nginxservice.xml 文件(名字要与nginxservice.exe 名字前缀保持一致,但后缀是xml) ,nginxservice.xml 的内容:

<service>
	<id>nginx</id>
	<name>nginx</name>
	<description>nginx</description>
	<logpath>D:\develop_tools\nginx\nginx-1.15.4</logpath>
	<logmode>roll</logmode>
	<depend></depend>
	<executable>D:\develop_tools\nginx\nginx-1.15.4\nginx.exe</executable>
	<stopexecutable>D:\develop_tools\nginx\nginx-1.15.4\nginx.exe -s stop</stopexecutable>
</service>
12345678910

我的nginx 所在的目录是 D:\develop_tools\nginx\nginx-1.15.4 ,如果你的安装目录与我的不相同,要修改 <logpath> 、 <executable> 、 <stopexecutable> 这3处对应的值。

配置完成后的目录情况如下:
在这里插入图片描述
nginxservice.exenginxservice.xml 是上面步骤 复制和创建 的文件。

4)用 管理员权限 打开 cmd ,进入 D:\develop_tools\nginx\nginx-1.15.4 目录下,执行安装命令: nginxservice.exe install 。
在这里插入图片描述

5)桌面 –> 此电脑(我的电脑)—> 右键,选择 管理 –> 服务和应用程序 –> 服务,找到 nginx 服务,右键 选择 启动服务 。
在这里插入图片描述

2.3、验证

三、nginx常用的基本命令

start nginx.exe       ## 启动服务
nginx.exe -s stop	  ## 快速停止服务
nginx.exe -s quit	  ## 优雅的 停止服务

nginx.exe -s reload	  ## 重新加载 配置文件,这命令可以不用停止nginx
nginx.exe -s reopen	  ## 重新打开日志文件

nginx window下的静态文件服务器

#nginx window下的静态文件服务器 
  location /file/ {
            alias   D:/upload/test/; #换成你的本地磁盘位置
            index   autoindex on;
        }

CloudFlare (CF) Spectrum服务初步使用体验|教程|SSH及MineCraft代理

前言

Spectrum是CloudFlare最近推出的新业务,官方的宣传标语是“SPECTRUM — 比常规的Cloudflare多了65,533个端口,为所有应用提供 DDoS保护!”

Cloudflare Spectrum为全协议反代加速服务,可以为任意 TCP/UDP 应用提供安全防护与加速。普通付费用户仅支持常见应用协议(SSH 、Minecraft,5G免费流量),企业版支持全协议(SSH 、Minecraft、RDP,10G免费流量)。

要注意的是云筏科技30元/年的Plesk Pro也可以用这个功能!超级划算啊!买买买!
https://www.cloudraft.cn/aff.php?aff=217&gid=19

另外开启Railgun及WAF等教程可以看这里:
 CloudFlare (CF) CDN开通伪Biz服务 Railgun|WAF|30PageRules|Pollish|Mirage

文章目录[隐藏] 声明 实现步骤 功能介绍 声明 说是biz,其实是阉割版的,功能(具体介绍看后面): Railgun 30条 PageRules CloudFlare WAF 定制错误页 Polish Mirage 实时流量分析 这种利用bug的方案不知道能有效多久,反正大家且撸且珍惜。 实现步骤 1. 先加个愿意给Railgun服务的CF Partner,接入域名,如果已经接入的要删除后再接入 例如云筏科技提供的免费CF Partner接入服务:https://cf.cloudraft.cn 2. 找CFP管理员要来railgun的token,部署railgun服务(保留好token,以后自己可以换服务器部署,不会失效) 安装方法看这里:https://www.cloudflare.com/docs/railgun/installation.html 3. 让CFP管理员给这个域名分配自己的railgun服务 4. 去CloudFlare官网查看是否添加成功 成功后是会在CF的后台看到这样的界面,可以选择开启或关闭,测试一下 5. 去CloudFlare官网删掉这个域名 6. 去有开通CF ServerShield Plus服务的Plesk,添加域名,开启服务 例如: https://www.cloudraft.cn/aff.php?aff=217&gid=19 终身8折优惠码59UQLYE9M0 购买后根据图文教程操作即可:https://doc.cloudraft.cn/products/cdn/cloudflare/quickstart 大功告成!去CloudFlare看看有没有生效吧~ 功能介绍 Railgun 这个功能是Biz以上才有的哟! 当内容快速变化或个性化时,其无法通过传统方式缓存,并且请求必须发送到源服务器进行处理。远离源服务器的访问者在更大程度上会受这些延迟的影响。 Railgun 通过压缩和 WAN 网络优化 Cloudflare 数据中心与源服务器之间的通信,来加速和保护动态内容的传递,从而加快无法直接从 Cloudflare 缓存提供的请求。 Railgun 通过以下方式缩短页面加载时间: […]

使用Spectrum加速SSH教程(拯救IPv6小鸡)

首先确保自己的域名已经是Pro及以上版本(官网购买),或者是Plesk Pro(云筏30元/年款)
然后在CloudFlare官网打开域名的Spectrum页面,点击开启Spectrum服务
开启后即可看到下图的内容:

选择Create,然后选择SSH并点击Continue:

输入自己要设置的子域名,例如我这里是:ipv6-nat-ssh.liujason.com
然后输入要加速/保护的小机IP,可以是IPv4也可以是IPv6,我这里填的是我的云筏NAT小鸡(IPv6独享)【点击直达 1TB的大盘鸡哟

保存后即开启成功!
启用域名后,所有的端口(1~65535)的SSH连接都可以使用这个域名进行转发/代理。
买Plesk Pro白嫖的套餐并不行,貌似要企业版…

使用体验

独立的IPv4+IPv6?

经过查询,发现全球的解析地址都一样,而且并是Anycast IP,有趣的是所有的端口都可以使用难道是独享的?

jason@Jasons-MacBook-Pro ~ % dig ipv6-nat-ssh.liujason.com ; <<>> DiG 9.10.6 <<>> ipv6-nat-ssh.liujason.com;; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 24490;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION:; EDNS: version: 0, flags:; udp: 4096;; QUESTION SECTION:;ipv6-nat-ssh.liujason.com.	IN	A ;; ANSWER SECTION:ipv6-nat-ssh.liujason.com. 300	IN	CNAME	f3746e25c7514339858774af46c13497.pacloudflare.com.f3746e25c7514339858774af46c13497.pacloudflare.com. 300 IN A 172.65.126.49 ;; Query time: 52 msec;; SERVER: 2a02:1800:100::42:2#53(2a02:1800:100::42:2);; WHEN: Mon May 25 15:16:38 CEST 2020;; MSG SIZE  rcvd: 130

实测一下ssh连接

丝般顺滑,比之前快多了!之前从按下回车键到连上差不多要10秒左右,现在高峰时期5秒左右吧。

jason@Jasons-MacBook-Pro ~ % ssh root@ipv6-nat-ssh.liujason.comThe authenticity of host 'ipv6-nat-ssh.liujason.com (2606:4700:70:0:3070:5104:c36b:289)' can't be established.ECDSA key fingerprint is SHA256:tvIf426QM1bWb8yv0KeoejpUWUl8PEYw2Q4qUu6fuk4.Are you sure you want to continue connecting (yes/no/[fingerprint])? yesWarning: Permanently added 'ipv6-nat-ssh.liujason.com,2606:4700:70:0:3070:5104:c36b:289' (ECDSA) to the list of known hosts.Last failed login: Mon May 25 20:02:54 CST 2020 from xxxxx on ssh:nottyThere were 8631 failed login attempts since the last successful login.Last login: Wed Jan 29 16:47:04 2020 from xxxxx-bash: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory[root@ecs-z3H ~]#

实测用IP直接连接也是一样的没问题:

jason@Jasons-MacBook-Pro ~ % ssh root@172.65.126.49            The authenticity of host '172.65.126.49 (172.65.126.49)' can't be established.ECDSA key fingerprint is SHA256:tvIf426QM1bWb8yv0KeoejpUWUl8PEYw2Q4qUu6fuk4.Are you sure you want to continue connecting (yes/no/[fingerprint])? yesWarning: Permanently added '172.65.126.49' (ECDSA) to the list of known hosts.Last failed login: Mon May 25 21:25:56 CST 2020 from xxxxx on ssh:nottyThere were 428 failed login attempts since the last successful login.Last login: Mon May 25 20:02:56 2020 from xxxxx-bash: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory

流量记录

由于每个月只有5G的流量,所以也就日常用用吧,实测更新是比较及时的。
大概在连上ssh后的3分钟左右看到已经有流量记录了:连接数、入流量、出流量都能显示

SSH代理速度

Mac上有个神器:SSH Proxy,配合SwitchyOmege使用特别方便。
配置好上面的SSH连接信息后开启代理服务:

之后去whatismyip上面看看是否已经生效,可以发现云筏NAT小鸡的IPv4和IPv6都可以查看到了,是Hetzner的机房:

然后随便找个YouTube的视频看看速度:

这时候再去CloudFlare看看实时速率:


centos7上利用ffmpeg中转m3u8节目源

现在IPV6还没有普及,有些在IPV6上的电视资源没法通过家里的网络收看,博士网上查了一下资料发现可以用ffmpeg来中转V6网络上的直播资源,下面开始搭建:

在centos7上安装ffmpeg命令:https://www.diannaobos.com/post/708.html

然后在服务器上随便开一个WEB,将下面代码中的路径替换成你自己的WEB目录就可以,节目源也可以替换成自己的,博士测试过m3u8和mp4格式的文件都可以中转播放。Bash

ffmpeg -i "http://iptv.pdsu.edu.cn/hls/natlgeo.m3u8" -c copy -vcodec h264 -f hls -hls_time 2.0 -hls_list_size 5 -hls_wrap 5 /usr/local/caddy/www/aria2/live/ngeo/index.m3u8

上面的iptv是北邮教育网的某个电视频道,执行这个命令后就可以实现通过VPS_IP/live/ngeo/index.m3u8来中转电视直播了,但是首先你的VPS要有可用的IPV6。

同理也可以转换rtmp成为m3u8源Bash

ffmpeg -i rtmp://58.200.131.2:1935/livetv/natlgeo -vcodec h264 -f hls -hls_time 2.0 -hls_list_size 5 -hls_wrap 5 /usr/local/caddy/www/aria2/live/ngeo/index.m3u8

如果出现服务器CPU100%的情况是因为转h264码需要消耗大量性能,只要将-vcodec h264参数删除就可以了。

为了防止程序长时间运行导致中转中断,可以新建一个tv.sh文件

里面放入代码killall -9 ffmpeg或pkill ffmpeg保存

添加一个crontab定时任务00 03 * * * sh /root/tv.sh

这样就可以再每天凌晨3点自动重启ffmpeg

Linux screen命令

Linux screen命令用于多重视窗管理程序。 screen为多重视窗管理程序。此处所谓的视窗,是指一个全屏幕的文字模式画面。通常只有在使用telnet登入主机或是使用老式的终端机时,才有可能用到screen程序。

语法

screen [-AmRvx -ls -wipe][-d <作业名称>][-h <行数>][-r <作业名称>][-s <shell>][-S <作业名称>]
参数说明
  • -A  将所有的视窗都调整为目前终端机的大小。
  • -d<作业名称>  将指定的screen作业离线。
  • -h<行数>  指定视窗的缓冲区行数。
  • -m  即使目前已在作业中的screen作业,仍强制建立新的screen作业。
  • -r<作业名称>  恢复离线的screen作业。
  • -R  先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。
  • -s<shell>  指定建立新视窗时,所要执行的shell。
  • -S<作业名称>  指定screen作业的名称。
  • -v  显示版本信息。
  • -x  恢复之前离线的screen作业。
  • -ls或–list  显示目前所有的screen作业。
  • -wipe  检查目前所有的screen作业,并删除已经无法使用的screen作业。

实例

创建 screen 终端
# screen //创建 screen 终端
创建 screen 终端 并执行任务
# screen vi ~/main.c //创建 screen 终端 ,并执行 vi命令
离开 screen 终端
# screen vi ~/main.c //创建 screen 终端 ,并执行 vi命令

#include 

main ()
{

}

"~/mail.c"       0,0-1    

在 screen 终端 下 按下 Ctrl+a d键
重新连接离开的 screen 终端
# screen -ls  //显示已创建的screen终端 
There are screens on:
2433.pts-3.linux    (2013年10月20日 16时48分59秒)    (Detached)
2428.pts-3.linux    (2013年10月20日 16时48分05秒)    (Detached)
2284.pts-3.linux    (2013年10月20日 16时14分55秒)    (Detached)
2276.pts-3.linux    (2013年10月20日 16时13分18秒)    (Detached)
4 Sockets in /var/run/screen/S-root.

# screen -r 2276 //连接 screen_id 为 2276 的 screen终端
常用screen参数 screen -S yourname -> 新建一个叫yourname的session screen -ls -> 列出当前所有的session screen -r yourname -> 回到yourname这个session screen -d yourname -> 远程detach某个session screen -d -r yourname -> 结束当前session并回到yourname这个session 在每个screen session 下,所有命令都以 ctrl+a(C-a) 开始。 C-a ? -> 显示所有键绑定信息 C-a c -> 创建一个新的运行shell的窗口并切换到该窗口 C-a n -> Next,切换到下一个 window  C-a p -> Previous,切换到前一个 window  C-a 0..9 -> 切换到第 0..9 个 window Ctrl+a [Space] -> 由视窗0循序切换到视窗9 C-a C-a -> 在两个最近使用的 window 间切换  C-a x -> 锁住当前的 window,需用用户密码解锁 C-a d -> detach,暂时离开当前session,将目前的 screen session (可能含有多个 windows) 丢到后台执行,并会回到还没进 screen 时的状态,此时在 screen session 里,每个 window 内运行的 process (无论是前台/后台)都在继续执行,即使 logout 也不影响。  C-a z -> 把当前session放到后台执行,用 shell 的 fg 命令则可回去。 C-a w -> 显示所有窗口列表 C-a t -> Time,显示当前时间,和系统的 load  C-a k -> kill window,强行关闭当前的 window C-a [ -> 进入 copy mode,在 copy mode 下可以回滚、搜索、复制就像用使用 vi 一样     C-b Backward,PageUp      C-f Forward,PageDown      H(大写) High,将光标移至左上角      L Low,将光标移至左下角      0 移到行首      $ 行末      w forward one word,以字为单位往前移      b backward one word,以字为单位往后移      Space 第一次按为标记区起点,第二次按为终点      Esc 结束 copy mode  C-a ] -> Paste,把刚刚在 copy mode 选定的内容贴上

在CentOS 7上安装和使用FFmpeg

FFmpeg是用于处理多媒体文件的免费和开放源代码工具集合。它包含一组共享的音频和视频库,例如libavcodec,libavformat和libavutil。使用FFmpeg,您可以在各种视频和音频格式之间转换,设置采样率,捕获流音频/视频和调整视频大小。

本教程将引导您逐步在CentOS 7上安装FFmpeg。

先决条件

为了能够添加新的存储库并在CentOS系统上安装软件包,您必须以具有sudo权限的用户身份登录

在CentOS上安装FFmpeg

FFmpeg在CentOS 7核心存储库中不可用。您可以选择从源代码构建FFmpeg工具,也可以使用Nux Dextop存储库中的yum进行安装。我们将选择第二个选项。

执行以下步骤在CentOS 7上安装FFmpeg:

Nux资料库取决于 EPEL 软件资料库。如果您的系统上未启用EPEL存储库,请通过键入以下内容启用它:

sudo yum install epel-release

Copy

接下来,导入存储库GPG密钥并通过安装rpm软件包来启用Nux存储库

sudo rpm -v --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm

Copy

一旦启用存储库,安装FFmpeg:

sudo yum install ffmpeg ffmpeg-devel

Copy

通过运行ffmpeg -version命令验证FFmpeg安装:

ffmpeg -version

Copy

在撰写本文时,Nux Dextop存储库中可用的FFmpeg的当前版本为2.8.15

ffmpeg version 2.8.15 Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 4.8.5 (GCC) 20150623 (Red Hat 4.8.5-28)
...

Copy

就是这样。 FFmpeg已安装在您的CentOS计算机上。

FFmpeg示例

在本节中,我们将看一些有关如何使用ffmpeg实用程序的基本示例。

基本转换

ffmpeg转换音频和视频文件时,不必指定输入和输出格式。自动检测到输入文件格式,并从文件扩展名中猜测输出格式。

将视频文件从mp4转换为webm:

ffmpeg -i input.mp4 output.webm

Copy

将音频文件从mp3到ogg:

ffmpeg -i input.mp3 output.ogg

Copy

指定编解码器

转换文件时,可以通过-c选项指定要使用的编解码器。编解码器可以是任何受支持的解码器/编码器的名称,也可以是仅复制输入流的特殊值copy

使用libvpx视频编解码器和libvorbis音频编解码器将视频文件从mp4转换为webm:

ffmpeg -i input.mp4 -c:v libvpx -c:a libvorbis output.webm

Copy

将音频文件从mp3转换为使用libopus编解码器编码的ogg。

ffmpeg -i input.mp3 -c:a libopus output.ogg

Copy

结论

您已在CentOS 7上成功安装了FFmpeg。您现在可以访问 FFmpeg官方文档页面,并学习如何使用FFmpeg转换视频和音频文件。

如果您遇到问题或有反馈,请在下面发表评论。