问题
使用@ffmpeg-installer/ffmpeg
下载的ffmpeg处理m3u8视频时,随机会出现异常,异常信息如下:
Error: Command was killed with SIGSEGV (Segmentation fault)
一个m3u8视频有将近1000个ts文件,有时候处理到第200个时异常,有时候处理到第800个时异常。
现象:
-
随机出现
-
windows和mac上正常
-
linux上异常
原因
ffmpeg 官网上 johnvansickle.com/ffmpeg/rele… 有注意事项
Notes: A limitation of statically linking glibc is the loss of DNS resolution. Installing
nscd through your package manager will fix this.
The vmaf filter needs external files to work- see model/000-README.TXT
复制代码
静态链接glibc的一个限制是丢失DNS解析。通过包管理器安装nscd可以解决这个问题。
默认Linux服务器是不会对DNS解析记录进行缓存的。
nscd 可以本地缓存DNS解析信息,提供解析速度。
解决方法
stackoverflow.com/questions/6…
方案一:
安装nscd
并启动
centos
下安装方法
yum -y install nscd #安装nscd
systemctl status nscd #查看nscd状态
systemctl start nscd #启动nsc
复制代码
其它替代方案
- 手动编译ffmpeg, 在
./configure
中启用 gnutls, openssl,libtls 或者 mbedtls 以支持https - 使用IP
- 将视频下载之后再使用ffmpeg处理。可以使用
wget
将m3u8
中的所有.ts
文件下载