shanaencoder吧 关注:1,150贴子:5,804
  • 1回复贴,共1

shanaencoder的ffmpeg命令写法

只看楼主收藏回复

比如封装格式、编码方式、编码参数等等这些,可以使用shanaencoder设置后自动生成。想要添加一些shanaencoder没有提供的参数,可以在右边任意一个配置文件上右击,选择“参数”,在弹出的窗口的“编码设置”里,在对应的参数行里自行添加。
比如我想将视频用X264重新编码,需要视频转码有一定质量,速度要快,最重要的是要能清晰准确的在视频场景变化较大时自动插入关键帧,那么可以用shanaencoder的如下图快速设置创建转码任务框架。

然后因为我们对质量有一定要求,所以可以在上述“编码设置”命令行的“-c:v libx264 -crf:v 21.0”这一行里添加诸如“-qmin 16 -qmax 26”这样控制画面质量上下限的命令。又比如我们需要清晰准确的自动关键帧,所以继续在这一行中加入“-sc_threshold 80 -g 250”,“-sc_threshold”用于判断画面每一帧改变的程度是否达到所设置阈值,设置为0表示不自动插如关键帧。“-g”用于指定GOP大小,每个GOP的第一帧必定是关键帧,设置250这么大的数值,是因为防止出现默认GOP太小,导致过多的非自动关键帧插入。然后因为编码器的很多高级功能会影响对每一帧改变程度的判别,所以我们使用“-profile:v high -level:v auto -preset:v ultrafast -tune:v none”这样的预设组合来合理简化每一帧的复杂度,得到比较准确的自动关键帧。那么,现在我们就得到了想要达到目的视频编码参数了:“-c:v libx264 -crf:v 21.0 -qmin 16 -qmax 26 -profile:v high -level:v auto -preset:v ultrafast -tune:v none -sc_threshold 80 -g 250”。
这里提一下我为什么非常不推荐大家去动“关键帧(秒)”这个参数,因为编码器根据内容变换自动插入关键帧可以说是最优解了,不信的话出门左转:https://tieba.baidu.com/p/10162635953
最后,本来不想说的,因为搞不好惹火上身,但都写到这地步了,也没什么了,就是在动画片压制过程中,对重复帧进行删除在我看来完全是出力不讨好的事情,因为你想得到的问题,做编码器的专业人士会想不到,面对重复帧,即使用X264的ultrafast模式无任何优化,请看实际测试图,重复帧的大小几乎做到了只剩差不多几十字节的帧头信息了,更何况如果使用了高等级模式动画专门优化的配置呢……

Shanaencoder使用滤镜的方式来改变视频分辨率,shanaencoder将视频滤镜命令单独列在了“参数”窗口的“过滤器参数”的第一行文本框中,和FFMPEG的视频滤镜命令一样,使用“-vf “[命令],[命令]””格式。其实实测完全可以将这里的滤镜命令移动至下面“编码设置”的视频编码参数行中,效果一样的,但和FFMPEG一样,不能在“-vf “””滤镜命令中使用非滤镜命令,比如这个例子中的“-qmin 16”这样的编码参数。
如果出现当前滤镜需要使用到上一个滤镜处理的结果时,将不能使用“-vf “””命令,而应在“参数”窗口的“编码设置”里,视频滤镜传递链应在视频编码参数命令行前使用“-filter_complex "[变量名or视频流编号]滤镜名=参数
{:参数}[变量名]{;下一命令参数}"”来进行,不能使用“-vf”命令和在shanaencoder的“过滤器参数”命令行中使用,否则会报错,示例如下图,这一系列滤镜将左右3D视频转换为上下3D视频:


IP属地:云南1楼2025-10-28 12:56回复
    优秀好贴


    IP属地:广东2楼2025-11-09 13:35
    回复