.net c# 视频剪切抓取缩略图

public string Cut(string ffmpegPath, string videoPath, string savePath, string imgSize, int sleepTime = 0xbb8)
        {
            if (File.Exists(ffmpegPath) && File.Exists(videoPath))
            {
                string str = savePath;
                string str2 = imgSize;
                string path = savePath.Substring(0, savePath.LastIndexOf(@"\"));
                if (!Directory.Exists(path))
                {
                    Directory.CreateDirectory(path);
                }
                ProcessStartInfo startInfo = new ProcessStartInfo(ffmpegPath)
                {
                    WindowStyle = ProcessWindowStyle.Hidden,
                    Arguments = " -i " + videoPath + " -y -f image2 -t 0.001 -s " + str2 + " " + savePath
                };
                try
                {
                    Process.Start(startInfo);
                    Thread.Sleep(sleepTime);
                }
                catch
                {
                    return string.Empty;
                }
                if (File.Exists(savePath))
                {
                    return savePath;
                }
            }
            return string.Empty;
        }
 
        public string Cut(string ffmpegPath, string videoPath, string savePath, string imgSize, int sleepTime = 0xbb8, float startPos = 10, float cutTime = 1)
        {
            if (File.Exists(ffmpegPath) && File.Exists(videoPath))
            {
                string str = savePath;
                string str2 = imgSize;
                string path = savePath.Substring(0, savePath.LastIndexOf(@"\"));
                if (!Directory.Exists(path))
                {
                    Directory.CreateDirectory(path);
                }
                ProcessStartInfo startInfo = new ProcessStartInfo(ffmpegPath)
                {
                    WindowStyle = ProcessWindowStyle.Hidden,
                    Arguments = string.Format(" -i {0} -t {1} -ss {2} -s {3} {4}", new object[] { videoPath, cutTime, startPos, str2, savePath })
                };
                try
                {
                    Process.Start(startInfo);
                    Thread.Sleep(sleepTime);
                }
                catch
                {
                    return string.Empty;
                }
                if (File.Exists(savePath))
                {
                    return savePath;
                }
            }
            return string.Empty;
        }
 
        protected void btnFetch_Click(object sender, EventArgs e)
        {
            try
            {
                string imgDir = Server.MapPath(@"ffmpeg\\");
                string ffmpegPath = imgDir + "ffmpeg.exe";
                string imgSize = txtImgSize.Text.Trim();
                int sleepTime = 500;
                string ret = string.Empty;
                float startPos = Convert.ToSingle(txtStartPos.Text.Trim());
                float cutTime = Convert.ToSingle(txtCutTime.Text.Trim());
 
                string temp = @"" + System.Configuration.ConfigurationManager.AppSettings["filepath"] + @"" + txtDownloadUrl.Text.Trim().Replace(@"/", @"\");
                temp = temp.Replace(@"\\", @"\");
                if (System.IO.File.Exists(temp))
                {
                    ret = Cut(ffmpegPath, temp, imgDir + "img\\" + DateTime.Now.ToString("yyyyMMddHHmmssffff") + ".jpg", imgSize, sleepTime);
 
                    if (string.IsNullOrEmpty(ret))
                    {
                        ret = Cut(ffmpegPath, temp, imgDir + "img\\" + DateTime.Now.ToString("yyyyMMddHHmmssffff") + ".jpg", imgSize, sleepTime, startPos, cutTime);
                    }
 
                }
                litMsg.Text = ret;
                imgDiagram.ImageUrl = ret.Replace(@"D:\site\20150914\", "/").Replace(@"\", "/");
            }
            catch (Exception ex) {
                litMsg.Text = ex.Message;
            }
        }
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: EasyModbus.NET C# 是一个开源的 Modbus TCP/IP 通信库,使用C#语言编写,用于在 .NET 环境中实现Modbus通信协议。它提供了使用TcpClient或UdpClient进行通信的简单接口,同时支持多个Modbus设备的连接和管理。EasyModbus.NET C# 可以在Windows、Linux以及其他 .NET环境下运行,是一种非常实用的工具。 EasyModbus.NET C# 有丰富的API,可以通过它进行Modbus协议的读写操作,包括读写Modbus寄存器、读写多个寄存器、读取Coil、Input等等。同时,EasyModbus.NET C# 也提供了对于MODBUS TCP / IP、MODBUS UDP 、RTU和ASCII通信协议的支持,可以灵活选择并切换协议类型,以满足不同的需求。 EasyModbus.NET C# 还提供了详细的文档和示例,可以帮助用户快速上手,并且找到解决方案。此外,EasyModbus.NET C# 还支持多语言环境,包括中文、英文、德文等几十种语言,并且能够在多种操作系统(如Windows和Linux)上无缝运行,适用性非常广泛。 EasyModbus.NET C# 在工业控制、自动化设备等方面的应用非常广泛,它的优点包括简单易用、接口完善、高效稳定、代码开放等等。EasyModbus.NET C# 不仅可以实现Modbus协议通信的实际应用,也可以作为学习、研究Modbus协议的研究者使用,并且EasyModbus.NET C#源代码也是开放的,用户可以根据个人需求进行调整和定制。 ### 回答2: Easymodbus是一个免费的Modbus协议库,针对C#编程语言和.NET框架,可以轻松实现Modbus TCP、Modbus RTU和Modbus ASCII通信。它支持从站和主站的通信,并且具有简单易用、高性能、开源免费等特点。 Easymodbus .NET C#库提供了许多功能,如读取和写入单个和多个位、单个和多个寄存器,快速读取和写入连续位和寄存器,以及读取和写入文件寄存器和输入寄存器。使用Easymodbus库可以轻松实现设备之间的数据交换,具有简便、高效、准确的特点,适用于多种应用场景,如工业自动化、数据采集、物联网等领域。 Easymodbus库的代码容易理解和修改,可以扩展和调整实现Modbus传输协议。此外,它还为用户提供了详细的文档和示例程序,可以帮助用户掌握如何使用库的各种功能。总之,Easymodbus .NET C#库是一个非常有用的工具,可以帮助工程师轻松实现Modbus通信,提高生产效率和质量。 ### 回答3: Easymodbus .net c是一个开源的Modbus通讯库,使用C#语言编写。它支持TCP和RTU协议,可在Windows和Linux操作系统上运行。 Easymodbus .net c被广泛应用于工业自动化领域,用于与各种设备进行通信,如PLC(可编程逻辑控制器)、传感器和执行器等。该库提供了易于使用的API,使用户可以轻松地实现Modbus通信,同时也提供了丰富的文档和示例代码以便用户学习和使用。Easymodbus .net c也可以与其他编程语言集成,如Java和Python。该库具有稳定性和可靠性,因此它是一个高效的解决方案,帮助工程师们在工业自动化项目中更轻松地实现Modbus通信,提高设备控制的效率和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值