用FFmpeg无损合并视频

波导终结者 波导终结者 2021-04-24 08:48

大家好,我是波导终结者。

之前和大家分享过一些FFmpeg的使用技巧,也有一些观众朋友来提需求或者疑问。本来想攒多一点出个合集,后来想想,越多越懵不是?解决问题讲究个化整为零,我们来一个一个需求看吧。

用FFmpeg无损合并视频_新浪众测

首先有一点要跟大家讲清楚,每个人的需求不同,具体到每个视频文件的情况都不同,不可能有什么一键的东西能达到最好的效果。很简单的道理:你的需求是A,他的需求是B,各不相同,那么你们都用同一个一键的工具快捷完成工作,那怎么可能同时满足两种不同的需求呢?100个人的100种需求呢?就更不可能了。

所以一点基础的动手能力还是要有的,你别告诉我你不会打字啥的,那这真的是神仙难救。

用FFmpeg无损合并视频_新浪众测

这次来跟大家分享的是合并视频的脚本。

说到视频合并,显而易见的是:如果想要无损合并,一个最基础的前提是,几个视频的参数肯定要完全一样,否则只能转码合并。

如果想要一键图形化的界面工具,Bandicat是很不错的,我有购买正版,终身升级。这并不是广告,因为我以前白嫖过好几年的Bandicam录游戏视频,后来补票就买了套装,用了发现真不错。

然后是M3U8的下载合并,这个涉及到解密的东西,为了避免侵权嫌疑,还是去找现成的工具就好。这里只谈合并的部分。

用FFmpeg无损合并视频_新浪众测

目前市面上的视频合并工具,调用的全是FFmpeg,不用怀疑。任何一个视频下载工具,包括刚才谈到的收费的Bandicut,核心都是FFmpeg。

所以我们电脑上需要有一个。你可以网上下安装版或者单文件版,也可以别处拷单独的可执行文件。如果是安装版,会帮你配置好,如果是拷文件,建议配置一下系统变量。

用FFmpeg无损合并视频_新浪众测

然后右击我的电脑,属性,高级系统设置(以最新版WIN10为例),在系统属性里点击环境变量,在下面的系统变量,Path,添加一行,填进你放FFmpeg的目录便可。

这步操作,使得你在命令行或者CMD等里面,直接调用FFmpeg即可,而不用写全路径。

用FFmpeg无损合并视频_新浪众测

这里就用网上下的武林外传试看版来试验,你用其他同属性的分块视频文件来合并也是一样的。本来下载工具是会自动合并M3U8成一个MP4文件,但如果刚好FFmpeg没配置好,或者出于某种需要想要手动合并呢?也完全没问题

声明:本文不涉及对任何有版权内容的下载或破解,也不涉及M3U8的解密内容。

用FFmpeg无损合并视频_新浪众测

想要合并文件,在命令行里我们可以接文件名,但是如果文件多的话,便不是明智之举了。有的朋友可能会说,如果留下M3U8文件是否可行呢?因为大部分情况下M3U8指向的是网络链接而不是硬盘本地链接,所以一样必须处理才可用。

这里用最简单的办法来处理:先建立一个bat脚本文件,用DIR命令把文件夹底下的内容输出到LIST.TXT里。如果文件夹里有其他不需要的文件,手动删掉即可。

用FFmpeg无损合并视频_新浪众测

下一步:FFmpeg可以使用一个LIST文件来指定需要合并的文件列表,但是对格式有一定的限定。在刚才使用DIR命令把所有文件名输出到文本文件里之后,我们还需要处理一下格式细节。

很简单,每一行以file开头,空格,然后用单引号把文件名括起来。如果不是同目录,还需要写完整路径,这里默认同目录,最开始指定FFmpeg路径就是为了在任意目录下都可运行。

用FFmpeg无损合并视频_新浪众测

刚才的图用的是Word,^p是换行的通配符。如果你用其他文件本工具也是差不多的。把换行替换的话,第一行的行首,和最后一行的末尾会有点问题,需要最后的file剪切到第一行前面。如果你用的文本工具可以用通配符指定行首和行尾,也可以避免这一问题。

可能有的朋友会觉得,写几行程序是不是可以一步到位?是的,但是也有的朋友光是替换都会觉得麻烦,复杂……我只能说,给大家一种折中的方案参考。

用FFmpeg无损合并视频_新浪众测

然后再建一个bat脚本文件,输入以上命令。

concat是合并的核心指令。

safe命令用于忽略一些文件名风险,比如长路径、空格、非ANSI(中文或特殊符号等),否则特定情况下会报错。

-i LIST.txt用于指定刚才生成的文件列表。

-c copy直接把音频和视频全部用复制,而非重编码的方式合并。

用FFmpeg无损合并视频_新浪众测

最后,运行Concat.bat脚本,指定的output.mp4文件便生成了。关于输出文件, 如果需要继承文件名或者生成子目录,请参考我前几篇FFmpeg的代码,使用变量,因为相对复杂,这里不再赘述。

关于文件格式,mkv,ts,mp4,flv(f4v)等封装的H264+aac一般都是可以直接封进mp4,并且互转的,你的后缀填的什么,FFmpeg会自动帮你换封装。当然,不建议指定avi等目前已经不常见的格式,avi不支持目前主流的aac音频格式,你还得转成ac3或mp3之类的……具体的每种容器各不相同,这里就不列表了,意义不大,就记着:H264+aac是目前主流就行。

用FFmpeg无损合并视频_新浪众测

当然,我猜到有不少朋友会说,有现成的XX工具也可以做到之类的。但是本质还是一样的,绕回到开头讲到的:市面上所有的工具,不管免费还是收费,核心还是FFmpeg的再封装……比如我之前跟大家推荐过的免费工具ShanaEncoder,把音频和视频编码器选成“复制”,效果就是一样的。

用FFmpeg无损合并视频_新浪众测

但是,现成的工具有其局限性,而需求是一直在变化、可能性无限的。我的目的主要还是跟大家分享渔,而不是鱼。毕竟一键转码的工具,有;但是一键满足各种不同需求并达到最好效果的工具,没有。这一点,有压过片的朋友应该再了解不过了。

感谢大家观看,如果对你有用,不妨点个关注或赞吧。如果还有什么想了解的,也不妨留言交流。我们下期再见。

(声明: 本文著作权归作者本人和新浪众测共同所有,未经许可不得转载。本文仅代表作者观点,不代表新浪众测立场。)
0 0
分享 商务合作 返回
微博 QQ空间 微信