`
wangguorui89
  • 浏览: 318386 次
  • 性别: Icon_minigender_1
  • 来自: 山西
社区版块
存档分类
最新评论

flv视频截图

阅读更多
首先判断视频的格式,然后根据不同的格式分别采用2种转换工具.示例代码:

#region 确定
    protected void btnOK_Click(object sender, EventArgs e)
    {
        string strTime = System.DateTime.Now.Year.ToString() + System.DateTime.Now.Month.ToString() + System.DateTime.Now.Day.ToString() + System.DateTime.Now.Hour.ToString() + System.DateTime.Now.Minute.ToString() + System.DateTime.Now.Second.ToString();
        ff.PostedFile.SaveAs(Server.MapPath(WebDefine.UpVideoPath + ff.FileName));
        int flag = 0;
        if (ff.FileName.Split('.')[1] != "flv")
        {
            foreach (string str in WebDefine.arrFfmpeg)
            {
                if (str == ff.FileName.Split('.')[1])
                {
                    string upfile = Server.MapPath(WebDefine.UpVideoPath + ff.FileName) + " -ab 56 -ar 44100 -qscale 8 -r 29.97 ";
                    string flvfile = Server.MapPath(WebDefine.FlvPath + strTime + ".flv");
                    string picfile = WebDefine.FlvPath + strTime + ".flv";
                    string strcmd = upfile + flvfile;
                    RunFFMpeg(strcmd);
                    flag = 1;
                    pic = CatchImg(picfile);
                }
            }
            foreach (string str1 in WebDefine.arrMencoder)
            {
                if (str1 == ff.FileName.Split('.')[1])
                {
                    string upfile = " " + Server.MapPath(WebDefine.UpVideoPath + ff.FileName) + " -o ";
                    string flvfile = Server.MapPath(WebDefine.FlvPath + strTime + ".flv") + " -of lavf -lavfopts i_certify_that_my_video_stream_does_not_use_b_frames -oac mp3lame -lameopts abr:br=56 -ovc lavc -lavcopts vcodec=flv:vbitrate=300:mbd=2:mv0:trell:v4mv:cbp:last_pred=3: -sws -1 -vf scale=512:-3 -ofps 12 -srate 11025 ";
                    string strcmd = upfile + flvfile;
                    RunMencoder(strcmd);
                    flag = 1;
                    pic = CatchImg(WebDefine.FlvPath + strTime + ".flv");
                }
            }
        }
        else
        {
            ff.PostedFile.SaveAs(Server.MapPath(WebDefine.FlvPath + ff.FileName));
            flag = 1;
        }
        if (flag == 0)
        {
            MessageBox.Show(this, "不支持该格式文件!");
            return;
        }

        Save(strTime);
    }
    #endregion

    #region 存入数据库

    /// <summary>
    /// 想数据库增加数据
    /// </summary>
    private void Save(string strTime)
    {
        T_Video_Mod model = new T_Video_Mod();
        model.TVideoId = Guid.NewGuid().ToString();
        model.VideoTitle = txtName.Text.Trim();
        model.VideoContent = txtContent.Text.Trim();
        model.VideoSize = "0";
        model.PicturePath = pic;
        model.VideoPath = strTime + ".flv";
        model.DeleteFlag = WebDefine.DeleteN;
        model.CreateTime = System.DateTime.Now.ToString();
        model.CreateUser = UserID;
        T_Video_Bll.InsertTVideoMod(WebDefine.DBConnectionName, model);
        MessageBox.ResponseScript(this, "alert('上传成功,如上传文件较大,需要等一会才能正常播放');window.location.href=window.location.href;");
    }
    #endregion

    #region RunFFMpeg
    /// <summary>
    /// 将asx, asf, mpg, wmv, 3gp, mp4, avi格式文件转换成Flv格式
    /// </summary>
    /// <param name="strCmd"></param>
    public void RunFFMpeg(string strCmd)
    {
        System.Diagnostics.ProcessStartInfo FilestartInfo = new System.Diagnostics.ProcessStartInfo(Server.MapPath(WebDefine.ToolsPath));
        FilestartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
        FilestartInfo.Arguments = " -i " + strCmd;
        try
        {
            System.Diagnostics.Process.Start(FilestartInfo);
        }
        catch (Exception ex)
        {
            MessageBox.Show(this, ex.Message);
        }
        System.Threading.Thread.Sleep(6000);
    }
    #endregion

    #region RunMencoder
    /// <summary>
    /// 将wmv9, rm, rmvb, mov格式文件转换成Flv格式
    /// </summary>
    /// <param name="strCmd"></param>
    public void RunMencoder(string strCmd)
    {
        System.Diagnostics.ProcessStartInfo FilestartInfo = new System.Diagnostics.ProcessStartInfo(Server.MapPath(WebDefine.MToolsPath));
        FilestartInfo.UseShellExecute = false;
        FilestartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
        FilestartInfo.Arguments = strCmd;
        try
        {
            System.Diagnostics.Process.Start(FilestartInfo);
        }
        catch (Exception ex)
        {
            MessageBox.Show(this, ex.Message);
        }
        System.Threading.Thread.Sleep(6000);
    }
    #endregion

    #region 截图
    /// <summary>
    /// 找到视频文件进行截图
    /// </summary>
    /// <param name="vFileName"></param>
    /// <returns></returns>
    public string CatchImg(string vFileName)
    {
        //string ffmpeg = System.Configuration.ConfigurationSettings.AppSettings["ffmpeg"];

        if ((!System.IO.File.Exists(Server.MapPath(WebDefine.ToolsPath))) || (!System.IO.File.Exists(Server.MapPath(vFileName))))
        {
            return "";
        }

        string flv_img = System.IO.Path.ChangeExtension(vFileName, ".jpg");

        string flv_img_p = HttpContext.Current.Server.MapPath(flv_img);

        string FlvImgSize = "160*110";

        System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo(Server.MapPath(WebDefine.ToolsPath));
        startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;

        //此处组合成ffmpeg.exe文件需要的参数即可,此处命令在ffmpeg 0.4.9调试通过
        startInfo.Arguments = " -i " + Server.MapPath(vFileName) + " -y -f image2 -t 0.001 -s " + FlvImgSize + " " + flv_img_p;

        try
        {
            System.Diagnostics.Process.Start(startInfo);
        }
        catch
        {
            return "";
        }
        ///注意:图片截取成功后,数据由内存缓存写到磁盘需要时间较长,大概在3,4秒甚至更长;
        ///这儿需要延时后再检测,我服务器延时8秒,即如果超过8秒图片仍不存在,认为截图失败;
        System.Threading.Thread.Sleep(6000);

        if (System.IO.File.Exists(flv_img_p))
        {
            return flv_img;
        }
        return "";
    }
    #endregion


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yaojian524/archive/2009/05/20/4203096.aspx
分享到:
评论

相关推荐

    asp.net视频截图及格式转换DEMO(采用ffmpeg.exe)

    FLV视频截图和格式转换是在线视频服务中常见的需求。FLV是Adobe Flash Player支持的一种流媒体格式,常用于网络上的短视频和直播。在DEMO中,可能包含特定的方法用于处理FLV格式的视频,如`GetFlvScreenshot()`和`...

    上传视频自动截图和转换为flv格式

    5. **前端展示**:用户可以在网页上查看上传的视频预览图,并点击播放已转换的FLV视频。 在实际应用中,还需要考虑性能优化、错误处理、安全措施(防止非法文件上传)等因素。例如,可以采用多线程处理以提高效率,...

    FLV视频编辑器 完美破解版

    FLV编辑器是一个对flv视频文件进行播放、截图、修复、剪辑、合并、切割、抓取、格式转换的工具。目前各大视频网站均采用flv视频格式,因此,本软件是您处理这类视频格式文件的好助手。 注意事项: 1、 该软件基于VB...

    JAVA 视频转码FLV

    本主题主要关注使用JAVA进行视频转码到FLV格式,以及支持视频截图的功能。以下是对这些知识点的详细阐述: **1. 视频转码** 视频转码是指将原始视频文件从一种编码格式转换为另一种,以适应不同的设备、平台或网络...

    最好的FLV视频编辑器

     ⑤针对以上的格式,「另存画面」让你可以捕捉即时的影片画面,「截图功能」则是让你设定间隔秒数,或指定张数,来提取影片视频。未来改版将加入 「缩图功能」,以制作影片的系列缩图展示。「修复功能」则是可以让...

    无敌FLV视频播放器

    此外,播放器可能还具备了一些高级功能,如视频截图、视频截取、播放列表管理等,以满足用户的不同需求。 对于“视频添加”这一文件名称,这可能指的是软件提供的视频导入或添加功能。用户可以通过该功能将本地的...

    srs 的 flv hls rtmp流的抓包及图片截图

    在本文中,我们将深入探讨SRS(Simple RTMP Server)中的FLV、HLS和RTMP流的抓包与图片截图技术,以及如何通过这些工具分析直播流的情况。首先,让我们逐一了解这些概念: 1. **RTMP(Real-Time Messaging Protocol...

    有预览列表的FLV视频播放器

    这通常通过视频截图技术实现,比如在每个关键帧处截取图像。 4. **界面设计**:播放器的用户界面需要包含预览列表,展示缩略图,并响应用户的点击事件。这涉及到前端开发,通常使用HTML、CSS和JavaScript来实现。 ...

    视频上传ffmpeg转码flv、截图播放点播播客解决方案代码

    同时,为了提供良好的用户体验,可能还需要考虑视频的预览功能,例如通过FFmpeg的截图功能生成缩略图。在示例代码中没有直接展示这部分,但通常会有一个额外的命令来获取视频的关键帧作为预览图片。 总的来说,91...

    点量FLV视频加密系统 v1.0.zip

    A5下载站向大家推荐一款专业的FLV视频加密软件——点量FLV视频加密系统。软件分为加密和播放两部分,主要是针对FLV、F4V这类Flash视频文件进行加密,软件界面美观简洁、使用方便,加密速度快...点量FLV视频加密系统截图

    FLV播放器(小巧)

    总之,“FLV播放器(小巧的FLV播放器)”是为了解决FLV格式视频播放需求而设计的一款实用工具,它通过简单的操作和高效的播放性能,满足用户在本地观看FLV视频的需求。配合“setup.exe”安装文件,用户可以轻松地在...

    FLV文件格式转换、剪辑、合并、切割编辑器

    1. **播放与截图**:编辑器提供播放功能,让用户可以预览FLV视频,同时允许用户截取视频画面,保存为静态图片,便于分享或者用于其他用途。 2. **修复**:在下载或传输过程中,FLV文件可能会出现损坏。这款编辑器...

    闪电FLV视频转换器 v12.5.0.zip

    闪电-FLV视频转换器是一个功能强大的Flash视频转换软件,使用它您可以将各种视频格式转换为SWF和FLV视频格式(网络上常用的Flash视频格式)。本软件几乎可以转换各种视频格式,包括DivX、XviD...闪电-FLV视频转换器截图

    视频上传+转换成flv

    5. **截图保存**:视频截图功能涉及视频帧的提取。在服务器端,可以使用FFmpeg抓取视频某一时间点的帧并保存为图像。在前端,可以通过发送请求到后端接口来触发截图,然后返回截图的URL供用户下载或展示。 6. **Web...

    新星FLV视频格式转换器 v8.7.3.0.zip

    新星FLV视频格式转换器是一款功能强大的FLV在线视频转换工具,通过本软件您可以轻松将从各种视频网站下载的FLV、SWF格式的视频文件转换为您需要的常见的视频和音频格式。... 新星FLV视频格式转换器截图

    视频格式转换flv

    通过这些步骤,我们可以构建一个完整的视频格式转换服务,满足用户将多种视频格式转码为FLV的需求,同时提供额外的截图和文件管理功能。这不仅提升了用户体验,也为视频内容的网络分发提供了便利。

    flv格式转换+截图安装包

    此“flv格式转换+截图安装包”是一个安全无毒的软件解决方案,专为有需要转换FLV文件和截取视频画面的用户设计。它简化了复杂的视频处理过程,使得即使是不熟悉此类操作的初学者也能轻松上手。 转换FLV格式时,该...

    FLVPlayer4Free.rar

    用户可以调整音量、快进快退、暂停播放,甚至可以进行视频截图。此外,软件内置了基本的视频调节功能,如亮度、对比度、饱和度的调整,使得在不同环境下观看都能获得最佳效果。 "readme.htm"是软件的使用指南,通常...

    web-video-live:网页H5播放视频流直播系统,使用flv.js,vue-video-player播放器,测试支持rtmp,http-flv,hls视频流格式,可以做视频监控,也可以通过视频截图

    我使用vue开发前端页面并需要进行网页截图,要求延迟低,所以我选择了低延迟的HTTP-FLV协议,支持这个协议的上面的只有flv.js了,所以最终选择了它。 展示效果 在一个做视频监控的项目中使用了flv.j

    FLV文件编辑器

    FLV文件编辑器是一款专为FLV视频格式设计的强大工具,它集播放、截图、修复、剪辑、合并、切割、抓取、格式转换等多种功能于一体,为用户提供了一站式的FLV文件处理解决方案。这款软件的出现,使得对FLV视频进行深度...

Global site tag (gtag.js) - Google Analytics