C# 调用FFmpeg 根据图片合成视频

1.项目结构:

2.代码:

  

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebFFmpeg
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            string pathString = AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
            Process p = new Process();
            p.StartInfo.FileName = pathString + "\\FFmpeg\\ffmpeg.exe";
            p.StartInfo.Arguments = @"-y -r 1 -i " +
                                    pathString + @"FFmpeg\pic\img%2d.jpg -i " +
                                    pathString + @"FFmpeg\music\02.mp3 -s 800x800 -vcodec mpeg4" +
                                    pathString + @"FFmpeg\vedio\out.mp4";
            p.StartInfo.UseShellExecute = false;
            p.StartInfo.RedirectStandardError = true;
            p.StartInfo.Crea teNoWindow = true;
            p.ErrorDataReceived += new DataReceivedEventHandler((s, message) => { Response.Write(message.Data); });//外部程序(这里是FFMPEG)输出流时候产生的事件,这里是把流的处理过程转移到下面的方法中,详细请查阅MSDN
            p.Start();//启动线程
            p.BeginErrorReadLine();//开始异步读取
            p.WaitForExit();//阻塞等待进程结束
            p.Close();//关闭进程
            p.Dispose();//释放资源

            Response.Write("<a href=‘FFmpeg/vedio/out.mp4‘>下载</a>");
        }
    }
}

3.Demo 连接

  http://url.cn/P64rFI

时间: 2024-09-30 17:11:50

C# 调用FFmpeg 根据图片合成视频的相关文章

ASP.NET下调用ffmpeg与mencoder实现视频转换截屏

最近要做一个视频播放的系统,用到了ffmpeg和mencoder两个工具,查了一些资料,发现这方面的资料还挺多的,但是就是乱了一点,我自己从头整理了一下,和大家分享一下: 1.ffmpeg实现视频(avi,wmv等格式)转换为flv格式: /// <summary> /// 转换视频为flv /// </summary> /// <param name="fileName">上传视频文件的路径(原文件)</param> /// <p

bash shell,调用ffmpeg定期截图

#!/bin/bash #获取当前目录中所有m3u8文件,并 var=$(ls |grep '.m3u8'|cut -d '.' -f1) #死循环 while [ 1 = 1 ] do #循环每个文件 for stream in $var do #获取当前最新视频文件 ts=$(ls -t|grep "$stream") for file in $ts do #存储M3U8文件文件名作为图片文件名,截图为220*120,截取第一帧,存储在当前目录的screen文件夹 img=$(ls

视频分解图片,图片合成视频

转载自: http://blog.csdn.net/ioswyl88219/article/details/18152419 视频视频分解视频合成AVAssetImageGenerato 工作当中用到了相关的技术,现在特别记录一下 分解视频 [objc] view plaincopyprint? <span style="font-size:18px;"> //分解视频 - (void)resolveMovWithUrl:(NSURL *)movUrl{ //得到url的资

.Net调用ffmpeg对视频截图

2019/10/27, .Net c#代码片段 摘要:借助ffmpeg对视频/图片截图.生成缩略图,使用命令行调用ffmpeg工具,支持Linux和Windows 网上很多版本都是需要等待4s的做法,这里不需要等待固定4s 添加引用对系统判断: using System.Runtime.InteropServices; /// <summary> /// 借助ffmpeg生成缩略图 /// </summary> /// <param name="originalFi

IOS 视频分解图片、图片合成视频

在IOS视频处理中,视频分解图片和图片合成视频是IOS视频处理中经常遇到的问题,这篇博客就这两个部分对IOS视频图像的相互转换做一下分析. (1)视频分解图片 这里视频分解图片使用的是AVAssetImageGenerator,利用这个class可以很方便的实现不同时间戳下,视频帧的抓取.注意一般这种视频分解图片帧的方法都是放在子线程中的,而UI更新操作都是放在主线程中的.下面来看看核心代码: _imageGenerator = [[AVAssetImageGenerator alloc] in

Android调用gallery获取图片

从gallery中获取图片 步骤: 步骤一: // 激活系统图库应用,选择一张图片 Intent intent = new Intent(); // 活动操作:选择一个项目从数据,返回被选中 intent.setAction(Intent.ACTION_PICK); // 设置意图的类型 intent.setType("image/*"); // 设置开启意图 // 设置的是有返回值的意图开启需要重写onActivityResult startActivityForResult(int

在visual studio 2010中调用ffmpeg

本文来自:http://blog.sina.com.cn/s/blog_4178f4bf01018wqh.html 最近几天一直在折腾ffmpeg,在网上也查了许多资料,费了不少劲,现在在这里和大家分享一下. 一.准备工作 本来是想自己在windows下编译ffmpeg生成lib.dll等库文件的,但是折腾好久总是出错,于是果断放弃.幸好网上已经有了编译好的版本,可以拿过来直接用,网址为http://ffmpeg.zeranoe.com/builds/.我们需要的是32-bit Builds (

Android 实例讲解添加本地图片和调用系统拍照图片

在项目的开发过程我们离不开图片,而有时候需要调用本地的图片,有时候需要调用拍照图片.同时实现拍照的方法有两种,一种是调用系统拍照功能,另一种是自定义拍照功能.而本博文目前只讲解第一种方法,第二种方法后期在加以讲解. 添加本地图片和调用系统拍照图片主要是通过调用acitivity跳转startActivityForResult(Intent intent, int requestCode)方法和activity返回结果onActivityResult(int requestCode, int re

.NET 2.0 调用FFMPEG

.NET 2.0 调用FFMPEG,并异步读取输出信息的代码... 1 public void ConvertVideo() 2 { 3           Process p = new Process();//建立外部调用线程 4           p.StartInfo.FileName = @"c:"ffmpeg.exe";//要调用外部程序的绝对路径 5           p.StartInfo.Arguments = "-i XXXXXXXXXXXX