使用FFmpeg转换编辑和切分视频

由于之前一直在折腾TS文件,涉及到TS文件的合并和转换,多次用到功能强大的FFmpeg工具。比如之前的《保存腾讯视频离线视频文件》,就需要使用FFmpeg文件把TS文件转换为MP4文件,或者需要把两个MP4文件合并为一个大的MP4文件。本文将总结一些FFmpeg的实用案例,所有的方案都来自互联网,我只是个搬运工。

#1.转换Mac视频

之前在网上下载了一个AVI的视频文件,在Mac上实用VLC可以播放(Mac自带的QuickTime不能播放),结果打开iMovie也无法编辑。因此决定实用FFmpeg把AVI转化成Mac可以播放的格式。以下是一个实用FFmpeg把avi格式转换为iphone,iPad等可以播放的MP4格式的方案:

ffmpeg -i original.avi -c:v libx264 -c:a copy original.mp4

终端显示转换成功,使用QuickTime也能打开了,iMovie也能使用了,但是发现没有声音。于是想了另外一个办法,先把AVI视频中的音频文件导出,保存为MP3格式。然后在导出视频文件,保存为MP4。最后把MP4和MP3合并,也许可以成功。以下为只导出MP3文件的方案。

ffmpeg -i a.avi -f mp3 -vn a.mp3

以下为几个参数说明:

  • -i 表示input,即输入文件
  • -f 表示format,即输出格式
  • -vn表示video not,即输出不包含视频

然后是只导出MP4文件的方案:

ffmpeg -i a.avi -c:v libx264 -an a.mp4

最后是把最终的MP3和MP4文件合并的方案:

ffmpeg -i a.mp4 -i a.mp3 -c copy output.mp4

最后结果还是没有声音,因此有试过的朋友可以帮忙出出主意。

#2.视频切割

之前有个26个字母的英文长视频,需要切割成26个短视频。于是实用以下方案切割:

ffmpeg -ss 00:00:02.5 -i original.avi -c copy -t 00:00:01.5 apple.avi

这里需要注意的是当中的“00:00:02.5”是开始时间,即视频2.5秒位置开始切割,切割长度为“00:00:01.5”,即1.5秒的长度,并保存到apple.avi文件。

#3.视频切割并只保留音频

上例中除了切割出视频外,还需要从长视频中切割一个纯音频文件出来,并保存为MP3格式,可以实用以下方案:

ffmpeg -ss 00:00:12 -i original.avi -f mp3 -vn -t 00:00:01 butterfly.mp3

#4.将DVD文件压缩导出MP4文件

DVD文件大家现在用得比较少了,其实一个DVD不是一个文件,而是好几个VOB文件。因此我们可以将VOB文件合并以后导出为MP4文件,或者先导出为MP4文件以后合并。以下是一个将VOB文件转换为MP4的例子:

ffmpeg -i input.vob -c:v libx264 -c:a aac -strict experimental output.mp4

按照以上方案导出MP4以后,假设我们导出了两个MP4文件,可以实用使用ffmpeg demux合并。首先创建一个list.txt文件:

file 'c0778cvwf6b.10701.1.mp4'
file 'c0778cvwf6b.10701.2.mp4'

随后使用以下命令便可完成文件合并。

ffmpeg -f concat -i list.txt -c copy merged.mp4

对于更多FFmpeg感兴趣的朋友可以扫码关注公众号获得帮助。

Captain QR Code

扫码联系船长

发表回复

您的电子邮箱地址不会被公开。