在asp中修剪mp4文件

时间:2012-08-27 19:36:42

标签: c# asp.net video mp4

我需要编写一个ASP处理程序,它将返回一个修剪过的mp4视频文件。 我将指定文件名,开始时间和结束时间。

现在我只有处理程序返回整个视频文件。问题是如何将它切成碎片。

public void ProcessRequest(HttpContext context)
{
    fileName = context.Request.QueryString["filename"];
    start = float.Parse(context.Request.QueryString["start"]);
    end = float.Parse(context.Request.QueryString["end"]);

    context.Response.ContentType = "video/mp4";
    context.Response.WriteFile("~/videofile.mp4");
}

我已经阅读了有关MP4文件,标题等的一些主题,但这并不容易。 如果我找到了计算单个帧的字节的方法。但是如何用可变比特率来做呢?

2 个答案:

答案 0 :(得分:0)

如果您可以运行系统命令来运行命令行实用程序(如ffmpeg)来为您剪切文件。这是最简单的方法。

 ffmpeg -i input-file -ss <start time> -t <duration>  -acodec copy -vcodec copy out.mp4 

以编程方式修剪mp4是非常麻烦的。让ffmpeg为你做。

答案 1 :(得分:0)

我设法使用基于使用MediaInfo获取的元数据的简单计算来复制文件的某些部分。

我复制整个标题,然后复制部分视频和音频流。 但这只有在我开始播放视频时才有效。 当我希望它在2secs之后启动时,文件完全被破坏了。

此外,标题元数据表明它仍然是原始持续时间,即使只有4秒。

寻求也很不准确。视频应该比它应该长约10%。

也许有一些方法可以在流中找到搜索点?