项目要求,视频要提供一张截图。在linux使用ffmpeg,没有window方便可以直接用exe文件;因为我们使用的操作系统是centos7.0+ ,必须先安装;

1、在centos上安装FFMPEG;

所以先找了ffmpeg的安装。一开始,是网上一堆教程,全手动安装,安装过程遇到一堆问题。然后一个问题解决,又遇到另一个,然后了三四个问题后。最后果然放弃安装。从网上搜索到了yum install一键自动安装的。尝试了,可用。纪录 下来

第一步: 按照自己centOS版本安装 nux-dextop repository
一下是指令!
  On CentOS/RHEL 6.*:
   sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el6/x86_64/nux-dextop-release-0-2.el6.nux.noarch.rpm
  On CentOS/RHEL 7:
  $ sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm
  Now verify that Nux Dextop repository is successfully installed:
  $ yum repolist
第二步:yum install ffmpeg

安装后,查看版本,来进行是否安装成功判断;(用whereis ffmpeg可以查看其安装路径;)

/usr/bin/ffmpeg -version

2、在asp.net core进行视频截图;我上的代码,也是网上抄过来的。代码写后,在window运行正常;然后发布到linux环境上,一直这个报错,遇到:No such file or directory ;

一开始以为是命令写错,在linux命令行执行转换命令,都能正常执行,然后又认为是linux权限问题;各种尝试;后面果断认为是asp.net core出问题。或是代码有问题;

 public string convertVideoImage(string VideoPath = ""){string str_MyProg = AppSettings.GetValue("FfmpegPath");//工具路径。从上面看,就是/usr/bin/ffmpegif (string.IsNullOrEmpty(VideoPath)){return string.Empty;}string str_CommandArgs = "";var file1 = new FileInfo(VideoPath);if (file1.Exists){try{string save_folder = file1.FullName.Replace(file1.Name, "");string image_file = "video_" + file1.Name.Replace(file1.Extension, ".jpg");//#设置参数以直接输出图像序列(帧),第四秒str_CommandArgs = "-i " + VideoPath + " -ss 00:00:04 -vframes 1 -an -y  -f mjpeg " + save_folder + image_file;System.Diagnostics.ProcessStartInfo cmd_StartInfo = new System.Diagnostics.ProcessStartInfo(str_MyProg, str_CommandArgs);cmd_StartInfo.RedirectStandardError = false; //set falsecmd_StartInfo.RedirectStandardOutput = false; //set falsecmd_StartInfo.UseShellExecute = true; //set truecmd_StartInfo.CreateNoWindow = true;  //don't need the black window//创建一个进程,分配它的ProcessStartInfo并启动它System.Diagnostics.Process cmd = new System.Diagnostics.Process();cmd.StartInfo = cmd_StartInfo;cmd.Start();System.Threading.Thread.Sleep(1000);return image_file;}catch (Exception ee){throw new Exception(ee.StackTrace + ee.Message + " for: " + str_MyProg + " " + str_CommandArgs);}}else{throw new Exception("No exists file:" + VideoPath);}}

上面的代码,在window执行都正确,在linux下,就会报找不到路径(No such file or directory);

在各个网站上查找,最终问题,是出现在 ,

UseShellExecute 一定要设置为false; 
 cmd_StartInfo.UseShellExecute = false; //set true 

特纪录下来,发现在asp.net core,用FFMPEG文章的还是比较少;

转载于:https://www.cnblogs.com/swordming/p/10304013.html

asp.net core在linux进行上传视频ffmpeg截图相关推荐

  1. Asp.Net Core Web Api图片上传及MongoDB存储实例教程(一)

    图片或者文件上传相信大家在开发中应该都会用到吧,有的时候还要对图片生成缩略图.那么如何在Asp.Net Core Web Api实现图片上传存储以及生成缩略图呢?今天我就使用MongoDB作为图片存储 ...

  2. Asp.Net Core Web Api图片上传(一)集成MongoDB存储实例教程

    Asp.Net Core Web Api图片上传(一)集成MongoDB存储实例教程 原文:Asp.Net Core Web Api图片上传(一)集成MongoDB存储实例教程 Asp.Net Cor ...

  3. 在TypeScript和ASP.NET Core中处理文件上传和受保护的下载

    目录 介绍 背景 使用代码 注册您的API main.ts api-plugin.d.ts 上传文件 提交文件 API服务方法 ASP.NET Core API方法 下载文件 客户端API下载 保护上 ...

  4. ASP.Net Core创建MVC项目上传文件(缓冲方式)

      学习了普通webapp中上传文件,再看看从MVC项目中通过缓冲方式上传文件到物理文件夹.这两者的区别主要是webapp通过模型绑定的方式传递IFormFile对象,而mvc通过控制器和action ...

  5. Asp.Net Core文件或图片上传

    管理后台上传的图片或文件可能也需要在 Api 项目能够访问,考虑到文件的统一管理,后台的文件默认 是上传到 Api 项目里的. Web 项目里的配置文件 appsetting.json 中的 ApiS ...

  6. .NET跨平台之旅:博问站点迁移至ASP.NET Core on Linux并发布上线

    Powered by ASP.NET Core on Linux! 我们全站的 .NET Core 迁移工作如火如荼,这是我们今年上半年的重要工作. 今天我们终于完成了博问产品(q.cnblogs.c ...

  7. 通过h5页面上传视频到Linux服务器

    1. 上传视频到本地 https://www.jb51.net/article/132531.htm 2. 上传视频到Linux服务器 建立ftp连接(保证服务器已经安装ftp及对应端口,帐号有权限) ...

  8. .NET技术 ASP.NET中常用的文件上传下载方法(多文件上传)

    文件的上传下载是我们在实际项目开发过程中经常需要用到的技术,这里给出几种常见的方法,本文主要内容包括: 1.如何解决文件上传大小的限制 2.以文件形式保存到服务器 3.转换成二进制字节流保存到数据库以 ...

  9. windows主机用scp命令向Linux服务器上传和下载文件

    windows主机用scp命令向Linux服务器上传和下载文件 文章目录: 一.scp介绍 二.scp上传和下载 1.上传 2.下载 三.scp的更多参数 一.scp介绍 scp是secure cop ...

最新文章

  1. ActiveMQ入门教程(三) - ActiveMQ P2P版的HelloWorld
  2. C#中显/隐式实现接口及其访问方法
  3. Message Queue中的推与拉(转)
  4. cobol host变量_将Host Cobol批次和Monolith Webapps移动到云和微服务
  5. 古老的spc也可以用机器学习(三)-支持向量机算法
  6. DUMP文件分析6:简单的堆破坏示例
  7. 搜索——滑雪(poj1088)
  8. Weblogic魔法堂:AdminServer.lok被锁导致启动、关闭域失败
  9. 用易语言对DNF卡顿进行批处理
  10. 视觉的力量,如何利用视频和社交媒体讲述品牌故事
  11. ContentProvider跨进程注册、启动流程源码解析
  12. matlab模糊建模设计,毕业设计matlab建模
  13. blender 2.8 python bpy 编写脚本操作物体
  14. fmt:formatDate标签的输出格式
  15. 用python监控A股股票波动并发送预警邮件_V3
  16. 找出excel 除0以外的最小值
  17. 2019年新税法+抵扣项的个人所得税攻击计算器
  18. 2023年2月的十篇深度学习论文推荐
  19. 微软2018年重组背后,扒一扒受影响的人与事
  20. Feelings On Life II

热门文章

  1. linux清除history历史命令:history -c
  2. Hadoop Yarn配置参数整理(非常全面)
  3. 基于Android Studio搭建cordova开发环境
  4. k8s Dashboard部署Tomcat集群
  5. Scala集合与Java集合的对比
  6. 请简单解释一下ARP协议和ARP攻击
  7. 《华尔街日报》专访雷军:小米如何应对挑战者身份的变化
  8. 作为初学者应该如何来学习FPGA
  9. C和C++中struct和typedef struct的异同
  10. python3连接sql server数据库_Python3操作SQL Server数据库(实例讲解)