.net core使用Process执行linux命令报错,ffmpeg获取视频的宽高分辨率信息

本文主要是介绍.net core使用Process执行linux命令报错,ffmpeg获取视频的宽高分辨率信息,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

我的系统是centos8

系统报的错误:

System.InvalidOperationException: Cannot start process because a file name has not been provided.at System.Diagnostics.Process.Start() in /_/src/libraries/System.Diagnostics.Process/src/System/Diagnostics/Process.cs:line 1207at WebNetCore5_Img_Storage.Model.Tool.GetVideoInfoByFFmpeg.GetVideoInfo(String videoPath)at WebNetCore5_Img_Storage.Controllers.FileUploadController.<>c__DisplayClass5_0.<<UploadBigFile>b__0>d.MoveNext()

这个错误一般是命令不对
命令里面最好没有引号;

ffmpeg获取视频的宽高分辨率信息,返回数据是json

ffprobe -select_streams v -show_entries format=duration,size,bit_rate,filename  -show_streams -v quiet  -of json -i  /upload/20210308_163751_259_a3f4.mp4
ffprobe -v quiet -print_format json -show_streams  IMG_0837.MOV
ffprobe  -select_streams v -show_entries format=duration,size,bit_rate,filename  -show_streams -v quiet  -of json -i   IMG_0837.MOV
ffprobe  -select_streams v -show_entries format=duration,size,bit_rate,filename  -show_streams -v quiet  -of json -i   VID_20210307_111234.mp4

返回数据

{"streams": [{"index": 0,"codec_name": "h264","codec_long_name": "H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10","profile": "High","codec_type": "video","codec_time_base": "3157/187500","codec_tag_string": "avc1","codec_tag": "0x31637661","width": 1920,"height": 1080,"coded_width": 1920,"coded_height": 1088,"has_b_frames": 0,"sample_aspect_ratio": "1:1","display_aspect_ratio": "16:9","pix_fmt": "yuv420p","level": 40,"color_range": "tv","color_space": "bt709","color_transfer": "bt709","color_primaries": "bt709","chroma_location": "left","refs": 1,"is_avc": "true","nal_length_size": "4","r_frame_rate": "179/6","avg_frame_rate": "93750/3157","time_base": "1/90000","start_pts": 0,"start_time": "0.000000","duration_ts": 530376,"duration": "5.893067","bit_rate": "14239766","bits_per_raw_sample": "8","nb_frames": "175","disposition": {"default": 1,"dub": 0,"original": 0,"comment": 0,"lyrics": 0,"karaoke": 0,"forced": 0,"hearing_impaired": 0,"visual_impaired": 0,"clean_effects": 0,"attached_pic": 0,"timed_thumbnails": 0},"tags": {"creation_time": "2021-03-07T03:12:33.000000Z","language": "eng","handler_name": "VideoHandle"}}],"format": {"filename": "/wzfgs_img_storage/tuku.img_linux/upload/20210308_173136_349_2ca0.mp4","duration": "5.893000","size": "11033567","bit_rate": "14978539"}
}
 var process = new Process{StartInfo = new ProcessStartInfo("ffprobe", "-select_streams v -show_entries format=duration,size,bit_rate,filename  -show_streams -v quiet  -of json -i  /upload/20210308_163751_259_a3f4.mp4"){RedirectStandardOutput = true,UseShellExecute = false}};process.Start();//视频信息jsonstring videoJson = process.StandardOutput.ReadToEnd();Console.WriteLine(videoJson);process.WaitForExit();process.Dispose();

这篇关于.net core使用Process执行linux命令报错,ffmpeg获取视频的宽高分辨率信息的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1047849

相关文章

nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析(结合应用场景)

《nginx-t、nginx-sstop和nginx-sreload命令的详细解析(结合应用场景)》本文解析Nginx的-t、-sstop、-sreload命令,分别用于配置语法检... 以下是关于 nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析,结合实际应

Linux线程之线程的创建、属性、回收、退出、取消方式

《Linux线程之线程的创建、属性、回收、退出、取消方式》文章总结了线程管理核心知识:线程号唯一、创建方式、属性设置(如分离状态与栈大小)、回收机制(join/detach)、退出方法(返回/pthr... 目录1. 线程号2. 线程的创建3. 线程属性4. 线程的回收5. 线程的退出6. 线程的取消7.

C#连接SQL server数据库命令的基本步骤

《C#连接SQLserver数据库命令的基本步骤》文章讲解了连接SQLServer数据库的步骤,包括引入命名空间、构建连接字符串、使用SqlConnection和SqlCommand执行SQL操作,... 目录建议配合使用:如何下载和安装SQL server数据库-CSDN博客1. 引入必要的命名空间2.

Linux下进程的CPU配置与线程绑定过程

《Linux下进程的CPU配置与线程绑定过程》本文介绍Linux系统中基于进程和线程的CPU配置方法,通过taskset命令和pthread库调整亲和力,将进程/线程绑定到特定CPU核心以优化资源分配... 目录1 基于进程的CPU配置1.1 对CPU亲和力的配置1.2 绑定进程到指定CPU核上运行2 基于

使用Python删除Excel中的行列和单元格示例详解

《使用Python删除Excel中的行列和单元格示例详解》在处理Excel数据时,删除不需要的行、列或单元格是一项常见且必要的操作,本文将使用Python脚本实现对Excel表格的高效自动化处理,感兴... 目录开发环境准备使用 python 删除 Excphpel 表格中的行删除特定行删除空白行删除含指定

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

深入理解Go语言中二维切片的使用

《深入理解Go语言中二维切片的使用》本文深入讲解了Go语言中二维切片的概念与应用,用于表示矩阵、表格等二维数据结构,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧... 目录引言二维切片的基本概念定义创建二维切片二维切片的操作访问元素修改元素遍历二维切片二维切片的动态调整追加行动态

Linux下删除乱码文件和目录的实现方式

《Linux下删除乱码文件和目录的实现方式》:本文主要介绍Linux下删除乱码文件和目录的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux下删除乱码文件和目录方法1方法2总结Linux下删除乱码文件和目录方法1使用ls -i命令找到文件或目录

prometheus如何使用pushgateway监控网路丢包

《prometheus如何使用pushgateway监控网路丢包》:本文主要介绍prometheus如何使用pushgateway监控网路丢包问题,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录监控网路丢包脚本数据图表总结监控网路丢包脚本[root@gtcq-gt-monitor-prome

mybatis执行insert返回id实现详解

《mybatis执行insert返回id实现详解》MyBatis插入操作默认返回受影响行数,需通过useGeneratedKeys+keyProperty或selectKey获取主键ID,确保主键为自... 目录 两种方式获取自增 ID:1. ​​useGeneratedKeys+keyProperty(推