ffmpeg合并多个视频文件讲解
问题来源:
这个问题源于我学习MMD制作,一个三分多钟1080P,60帧的视频总共七十个G左右,但是AVI的单个视频文件被限制在了33.3G以内(不知道是windows的限制还是AVI格式限制)。所以就驱动我想办法去压缩和拼接视频。视频压缩和封装首先想到的就是小丸工具箱。但是小丸工具箱没有提供多个视频合并的功能。所以百度了一下ffmpeg的拼接用法。
ffmpeg视频拼接方法
脚本都是再记事本里面编写的,不需要担心环境配置之类的(核心还是ffmpeg的语句)
如果有安装了git,那么可以写.sh脚本(文本格式:utf-8)(我为了省事,直接使用的git bash)。 没有安装的话,windows写bat脚本(文本格式:ANSI)使用cmd也可以,但是注意工作路径,这个再最后会说

编写.sh脚本:
(以下文件都写在txt文本编辑器里,最后将后缀更改为.sh即可运行)
第一步:生成ts文件
这里我使用的-vcodec copy 是复制视频的意思,如果要音频和视频一起复制的话,可以使用-c copy, 如果只拼接音频的话,使用-acodec copy
第二步:合并ts文件(这个时候已经输出了一个视频)
这个时候的输出文件已经是可以播放的视频了,如过需要和音频合成的话,可以使用小丸或者使用PR进行编辑
中间文件没有用了,所以可以删掉删除,下面给出两个方法都很简单
第三步:音视频合成(可以用小丸哈哈哈)
将output1.mp4的视频copy一下,然后将恋爱循环的音频copy一下,输出的文件就是音频视频都有的文件。
存在的坑:
使用记事本编辑文件的时候,脚本一定要使用utf-8编码格式编写。不然中文名字会变成乱码,然后就无法找到这个文件了。
具体方法就是把txt文件另存为,这个时候会让选择编码格式,选择为utf-8即可,然后将这个txt文本文件的后缀修改为.sh,拖到git bash运行(推荐)或者双击运行

如果使用notepad++,那么可以直接在notepad++里面修改编码方式
如果名字都是纯英文的,那么可以不用管这个
最终的结果:

windows的bat脚本
一定要注意工作路径,先切换到工作文件夹再运行脚本(或者直接双击脚本可能也行)
windows的默认编码格式和linux是不一样的,脚本文件的编码格式选择ANSI,也就是记事本的默认格式
而且注意不要有单引号,所有的单引号要么替换成双引号,要么不加。
