- 使用FFmepg快速切割视频
优点:速度够快
缺点:如果切割的时间点不属于关键帧则会出现切割的视频开始部分停顿几秒
命令如下:
ffmpeg -i input.mkv -ss startTime -to endTime -c:v copy -c:a copy out.mkv
其中statTime和endTime是形如:00:10:00这样的格式。-c:v copy -c:a copy
代表复制原视频的视频和音频编码不做任何改变。
如果希望最后获得的视频正常则需要重新编码,如下:
ffmpeg -i input.mkv -ss startTime -to endTime -c:v libx264 out.mkv
上述命令将最后输出的视频采用H.264编码重新编码。
- map指定分割视频的音频、视频、字幕流
假设我们有一视频,现在需要复制它的视频流和字幕,将音频流按照MP3和acc分别编码,最后将这两个音频流压缩到输出视频中。
ffmpeg -i input.mkv \ -map 0:0 -map 0:1 -map 0:1 -map 0:3 \ -c:v copy \ -c:a:0 libmp3lame -b:a:0 128k \ -c:a:1 libfaac -b:a:1 96k \ -c:s copy \ output.mkv
其中-map 指定了需要使用的流。
- 使用FFmpeg命令获取视频中的字幕(软字幕)
a.查看视频的信息
ffmpeg -i input.mkv
演示图
从上图可以看到该视频有5个stream,其中stream 0是视频流,stream 1是audio,剩下的几个都是字幕流。
ffmpeg -i Movie.mkv -map 0:s:0 subs.srt //该命令会自动搜索字幕
- 将字幕嵌入到视频中
方法1. 硬字幕嵌入(写入到视频帧中,能播放视频的即可显示字幕)
ffmpeg -i video.mkv -vf subtitles=subtitle.srt -codec:a copy output.mkv
方法2. 软字幕(也即需要播放器支持字幕信息)
ffmpeg -i video.mkv -i subtitle.srt -codec copy -map 0 output.mkv
网友评论