转码卡状态或出现错误

在视频转码过程中,我们会因为操作或设置问题,导致出现视频错误、秒切失败、转码错误等问题。

以下主要列举一下视频状态的一些问题说明及解决方法,如有出现请认真阅读并解决。

视频错误

1、视频有问题,大多数为采集视频出现,这种视频一般播放也会有问题,可以使用一个非采集视频测试下转码,正常视频 ⇒ 点击下载

2、视频上传后,开始转码的时候,你把源片给删掉了。

3、服务器缺少ffmpeg,一般发生在迁移服务器后,可在服务器运行ffmpeg命令查看,提示-bash: ffmpeg: command not found,则未安装,可使用命令:

#下载二进制文件
wget https://file.zhuanma.co/ffmpeg-git-amd64-static.tar.gz
#解压文件
tar zxvf ffmpeg-git-amd64-static.tar.gz && rm -rf ffmpeg-git-amd64-static.tar.gz
#移动文件
mv ffmpeg-git-amd64-static/ffmpeg  ffmpeg-git-amd64-static/ffprobe /usr/bin/
#查看版本,有版本输出则安装成功
ffmpeg
ffprobe

4、如果上面3种问题都没出现,也可能是pm2启动进程异常,可依次运行以下命令:

#关闭EFV进程
pm2 del efvcms
#进入EFV源码目录 如不在/home的请自行修改路径后再运行命令
cd /home/express-ffmpeg
#重新启动
PORT=3000 NODE_ENV=production pm2 start bin/www --name efv
#保存会话,即开机自启
pm2 save

秒切失败

大概率视频有问题,大多数为采集视频出现,这种视频一般播放也会有问题,可以使用一个非采集视频测试下转码,正常视频 ⇒ 点击下载

转码错误

转码错误主要是因为一些使用操作问题而导致,比如加水印/跑马灯,去水印跑马灯,烧录字幕等,这里会分开挨个说明,

且如果有修改过转码设置里的码率设置,可检查下格式有没有改动,或者部分分辨率有没有删除。

使用加跑马灯和水印功能

一般为跑马灯或部分水印所需要的时间未设置,或者提交前未保存,导致设置失败,可直接在水印/跑马灯设置页面查看相关设置选项,如有参数有显示未设置,则重新设置即可。

使用去水印和跑马灯功能

1、给视频选择批量去水印/跑马灯模板的时候,选错了模板。

2、给视频设置批量去水印/跑马灯模板的时候,画的框框有瑕疵,没有完全把跑马灯和水印框住。

使用烧录ass和srt字幕功能

可能是字幕文件非utf-8编码造成的,将编码改成utf-8,重新转码即可。

不会查看编码的,这里举个例子,比如我的字幕路径为/home/express-ffmpeg/movies/xx.ass,则我在ssh客户端运行命令:

file -i '/home/express-ffmpeg/movies/xx.ass'

会输出一串信息,如charset=utf-8,后面就是该字幕文件编码,这里提供一个批量转换字幕到utf-8shell脚本。

#!/bin/bash

# 设置要扫描的文件夹路径
folder="movies"

# 查找所有.srt和.ass文件
files=$(find "$folder" -type f \( -name "*.srt" -o -name "*.ass" \))

# 循环处理每个字幕文件
for file in $files; do
    # 获取文件编码
    encoding=$(file -bi "$file" | awk -F "=" '{print \$2}')
    
    # 检查编码是否为UTF-8
    if [[ $encoding != "utf-8" ]]; then
        # 转换非UTF-8编码的文件为UTF-8编码
        iconv -f $encoding -t UTF-8 "$file" -o "${file%.srt}_utf8.srt"
        
        # 替换原始文件
        mv "${file%.srt}_utf8.srt" "$file"
        
        echo "文件 $file 被转换为UTF-8编码"
    else
        echo "文件 $file 已经是UTF-8编码,无需转换"
    fi
done

echo "字幕文件转换完成"

在服务器root目录新建ass.sh文件,将上面内容复制进去,修改扫描的文件夹路径,保存后使用bash ass.sh运行即可。

使用GPU转码功能

1、服务器没有Nvidia显卡。

2、服务器上显卡驱动没跑起来,使用nvidia-smi命令查看,如果没显卡信息出现,那就是该原因。

3、如果你选择了去水印/跑马灯,请暂时关掉GPU开关,使用CPUGPU没适配去水印/跑马灯功能。

视频不转码了

1、看看最近是否在不同服务器上安装过、是否迁移过服务器、服务器是否换过ip,如果有,则大概多ip同时运行异常了,请联系我们处理。

2、DNS问题,你在ssh客户端输入ping baidu.com命令,如果返回Name or service not known则为DNS问题,解决方法 ⇒ 点击查看

视频卡转码中状态

1、视频有问题,比如加密视频,或者你把图片或者其他非视频文件上传转码,导致转码卡住,解决办法就是删掉该文件即可。

2、视频太短,比如低于10s,截图时间不够,建议前往转码设置,开启保留原片,后面手动删除原片。

3、转码设置的自定义切片路径你没加分辨率,也就是{random}{hd}仅能存在一个且必须存在一个

特别说明

如果你看了上面这些问题和解决办法,问题依旧没有得到解决,可直接联系我们,且为了方便快速处理问题,建议提供该视频转码日志信息,日志查看方式: