记一次m3u8多个视频文件合并为整体(未加密)

理论上讲,从网站上下载的这种视频格式的文件都是一个“.m3u8”为后缀的目录文件加上一个文件夹。文件夹里面放置的就是实际的视频文件了。如果没有加密的话,你是可以直接把它用视频播放器打开的。如果不能打开的话,那说明文件已经被加密了,本篇日记则不适合。

理论上讲,里面的视频文件都是名称递增的,比如abcd1.ts、abcd2.ts。各个文件只有后面的数字不同而已。如果不是这样,那么,你得根据m3u8目录文件(打开方式为文本),从头至尾排序了。如果是这样的话,本篇日记是合适的,但是需要自行改动。

言归正传,自己百度搜索 ffmpeg下载 .或者根据

链接1:官网下载:http://www.ffmpeg.org/download.html

链接2:百度网盘下载:https://pan.baidu.com/s/14Y8zctqGRNeA9qYLOZChRg 提取码:t8ys 。

下载完后,解压即可,然后去配置环境变量: path。后面新建即可,加入打开bin文件夹后复制的地址栏的地址即可。

检验配置好了没有,快捷键 windows+R,键入cmd后进入控制台,再键入ffmpeg,如果不是出现未安装的命令啥的,那应该就是没问题的。懒得插图。

这里假设你已经配置好了。这里先给出你最后在控制台键入的语句:ffmpeg -f concat -safe 0 -i C:\Users\17724\Desktop\test\filelist.txt -c copy C:\Users\17724\Desktop\test\newoutput.mp4

这里注意的地方就是 filelist.txt文件的位置和名称一定要设置好,还有产出视频的位置和名称也要根据下面自己改动。

代码看不懂可以留言也可以自行百度,建议百度。

还要注意笔者用的dev-cpp。要设置为支持c++11,怎么设置呢,因为不想插图,也就不再赘述了,留言或者自行百度都可。

 1 //这里先给出你最后在控制台键入的语句:ffmpeg -f concat -safe 0 -i C:\Users\Administrator\Desktop\filelist.txt -c copy C:\Users\Administrator\Desktop\outputnow.mp4
 2 #include<iostream>
 3 #include<string.h>
 4 using namespace std;
 5 int main()
 6 {
 7     /* 根据视频文件的顺序改动循环即可 */
 8     for(int i=0;i<1019;i++)
 9     {
10         string s="file "; 11 /* 下面添加的是视频文件的文件位置 和视频文件的共同前缀。具体的自己改动即可*/ 12 s+="'C:\\Users\\Administrator\\Desktop\\test\\abcd" +to_string(i)+".ts'\n"; 13 /* 如果原文件没有后缀的话,就去掉.ts即可。*/ 14 cout<<s; 15  } 16 }

这里,要把运行后的输出内容全部复制到filelist.txt中,再在控制台中运行最后那句代码即可。合并速度很快,不会久等的。

猜你喜欢

转载自www.cnblogs.com/dayq/p/12462599.html
今日推荐