FFMPEG与fluent-ffmpeg入门避坑指南

首先是ffmpeg,一个简单的转换命令如下


ffmpeg -i 111.mkv -ss 0 -to 20 -c:v libx264 -c:a aac -b:v 2000k -maxrate 2500k -bufsize 2000k -222.mp4

我这常用的一些基本的参数


-i 111.mp4 //这是文件输入
-ss 0 //视频起始时间
-to 50 //视频终止时间
-c:v libvpx //libvpx是视频编码器,-c:v是指定视频编码器
-c:a libvorbis //同样的,-c:a是指定音频编码器
-b:v 2000k //视频码率
-preset ultrafast //调节编码速度及质量
-format webm // 指定视频格式,流的方式输出时需要指定
-threads 4 //多线程处理,不过这一块我也不懂,感觉开了会快一些。。。

对于视频转换,如mkv--->mp4

首先是视频的编码格式,mp4支持的格式有H.265,H.264,所以如果mkv的视频格式不是mp4支持的格式,就需要通过-c:v来指定编码器,mp4这里用到的是libx264,不指定的化会报错。

对于视频需要的格式可以通过这种形式来查找


ffmpeg -encoders | findstr mp4

同样的,对于音频编码格式,也需要对不兼容的格式进行转换,指定音频格式


这里列一下mp4及webm的格式及编码器
mp4:
video,h.264 编码器libx264,h.265 编码器libx265
audio, aac 编码器aac
webm:
video, vp8 编码器libvpx
audio,ogg 编码器libvorbis


对于ffmpeg加字幕,直接写下面这种:


-vf "ass='F\:\\acg\\123.ass'" //F:\acg\123.ass

-vf "subtitles='F\:\\acg\\123.srt'" //F:\acg\123.srt

加 \ 来防止vf过滤器的转意


对于fluent-ffmpeg,如果找不到ffmpeg,可以在js文件里这样


const ffmpeg = require('fluent-ffmpeg');
ffmpeg.setFfmpegPath('E:/ffmpeg-2023-01-04-git-4a80db5fc2-full_build/bin/ffmpeg.exe');

具体使用的可以看看fluent-ffmpeg的github

https://github.com/fluent-ffmpeg/node-fluent-ffmpeg

对于使用fluent-ffmpeg加字幕,你需要这样


.outputOptions([
    "-vf", "ass='F\\:\\\\ACG\\\\123.ass'",
  ])

比上面多了一组 \ ,第一个 \ 是为了防止node的转意,得到一个 \ 的字符,然后这个字符在防止vf的转意

至此,就可以开始快乐的转换视频了。。。(还有跟多的坑要踩)


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空