如何在C ++中通过system()将视频文件拆分为多个部分

时间:2018-05-04 03:25:34

标签: c++

我正在创建一个以多种不同方式操作视频的C ++程序。操作是通过C ++中的system()创建的,其中包含已安装的MP4BoxFFMPEG视频编辑库。我的一个程序是没有给我正确的结果,我需要帮助。

我有.mp4格式的1080p质量视频,不包括音频。视频为1分钟或60秒长。我希望将此视频拆分为5秒部分。所以作为回报,我将有12个视频文件,持续时间为5秒。

到目前为止,我使用的是这个系统(我的代码):

#include <iostream>
#include <windows.h>
#include <list>
#include <string>

using namespace std;

int main()
{
   int media_duration = 60;
   for (int time = 0; time <= media_duration; time += 5)
   {
      system(("cd C:\\Users\\amans\\Documents\\video && ffmpeg -i 1080p.mp4 -ss " + to_string(time) + " -to " + to_string(time + 5) + " -c copy " + to_string((time + 5) / 5) + ".mp4").c_str());
   }
   cin.get();
   return 0;
}

在上面的代码中,我创建了一个循环,它将1080p文件分成12个不同的文件,但它们不在5秒的持续时间内。某些文件的持续时间为1秒,而其他文件的持续时间为3或4秒。我使用FFMPEG分割视频。

有人可以给我另一种方法或帮我修复当前的方法吗?请在下面评论。感谢

0 个答案:

没有答案