Niceri

导航

截取上传视频的第一帧作为封面的方法

1,我们需要借助一个工具ffmpeg(http://www.ffmpeg.org/download.html)

2,截取第一帧的方法

        /// <summary>  
        /// 从视频中截取img格式图片  
        /// </summary>  
        /// <param name="applicationPath">ffmpeg.exe文件路径</param>  
        /// <param name="fileNamePath">视频文件路径(带文件名)</param>  
        /// <param name="targetImgNamePath">生成img图片路径(带文件名)</param>  
        private void ConverToImg(string applicationPath, string fileNamePath, string targetImgNamePath)
        {

            //string c = applicationPath + @"\ffmpeg.exe -i" + fileNamePath + targetImgNamePath+"-ss 00:00:05  -r 1 -vframes 1 -an -vcodec mjpeg " ;  
            string c = applicationPath + @"\ffmpeg.exe -ss 00:00:05 -i" + " " + fileNamePath + " " + targetImgNamePath + " " + "-r 1 -vframes 1 -an -vcodec mjpeg ";//速度快  
            Cmd(c);
            //-i:设定输入文件名  
            //-r:设定帧 此处设为1帧  
            //-f:设定输出格式  
            //-ss 从指定时间截图  
            //-vcodec:设定影像解码器,没有输入时为文件原来相同的解码器  
            //-vframes 设置转换多少桢(frame)的视频  
            //-an 不处理声音  
        }    
        /// <summary>  
        /// 程序中调用CMD.exe程序,并且不显示命令行窗口界面  
        /// </summary>  
        /// <param name="c">执行的cmd命令</param>  
        private void Cmd(string c)
        {
            try
            {
                System.Diagnostics.Process process = new System.Diagnostics.Process();
                process.StartInfo.CreateNoWindow = true; //不显示程序窗口                  
                process.StartInfo.FileName = "cmd.exe";//要执行的程序名称   
                process.StartInfo.UseShellExecute = false;
                //process.StartInfo.RedirectStandardError = true;  
                process.StartInfo.RedirectStandardOutput = true;//由调用程序获取输出信息   
                process.StartInfo.RedirectStandardInput = true; //可能接受来自调用程序的输入信息   
                process.Start();//启动程序   
                process.StandardInput.WriteLine(c);
                process.StandardInput.AutoFlush = true;
                process.StandardInput.WriteLine("exit");

            }
            catch { }
        }

 

posted on 2017-04-07 09:37  Niceri  阅读(15287)  评论(0编辑  收藏  举报