.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

相关文章

ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法

《ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法》本文介绍了Elasticsearch的基本概念,包括文档和字段、索引和映射,还详细描述了如何通过Docker... 目录1、ElasticSearch概念2、ElasticSearch、Kibana和IK分词器部署

JavaScript中的reduce方法执行过程、使用场景及进阶用法

《JavaScript中的reduce方法执行过程、使用场景及进阶用法》:本文主要介绍JavaScript中的reduce方法执行过程、使用场景及进阶用法的相关资料,reduce是JavaScri... 目录1. 什么是reduce2. reduce语法2.1 语法2.2 参数说明3. reduce执行过程

如何使用Java实现请求deepseek

《如何使用Java实现请求deepseek》这篇文章主要为大家详细介绍了如何使用Java实现请求deepseek功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1.deepseek的api创建2.Java实现请求deepseek2.1 pom文件2.2 json转化文件2.2

python使用fastapi实现多语言国际化的操作指南

《python使用fastapi实现多语言国际化的操作指南》本文介绍了使用Python和FastAPI实现多语言国际化的操作指南,包括多语言架构技术栈、翻译管理、前端本地化、语言切换机制以及常见陷阱和... 目录多语言国际化实现指南项目多语言架构技术栈目录结构翻译工作流1. 翻译数据存储2. 翻译生成脚本

Linux流媒体服务器部署流程

《Linux流媒体服务器部署流程》文章详细介绍了流媒体服务器的部署步骤,包括更新系统、安装依赖组件、编译安装Nginx和RTMP模块、配置Nginx和FFmpeg,以及测试流媒体服务器的搭建... 目录流媒体服务器部署部署安装1.更新系统2.安装依赖组件3.解压4.编译安装(添加RTMP和openssl模块

C++ Primer 多维数组的使用

《C++Primer多维数组的使用》本文主要介绍了多维数组在C++语言中的定义、初始化、下标引用以及使用范围for语句处理多维数组的方法,具有一定的参考价值,感兴趣的可以了解一下... 目录多维数组多维数组的初始化多维数组的下标引用使用范围for语句处理多维数组指针和多维数组多维数组严格来说,C++语言没

linux下多个硬盘划分到同一挂载点问题

《linux下多个硬盘划分到同一挂载点问题》在Linux系统中,将多个硬盘划分到同一挂载点需要通过逻辑卷管理(LVM)来实现,首先,需要将物理存储设备(如硬盘分区)创建为物理卷,然后,将这些物理卷组成... 目录linux下多个硬盘划分到同一挂载点需要明确的几个概念硬盘插上默认的是非lvm总结Linux下多

在 Spring Boot 中使用 @Autowired和 @Bean注解的示例详解

《在SpringBoot中使用@Autowired和@Bean注解的示例详解》本文通过一个示例演示了如何在SpringBoot中使用@Autowired和@Bean注解进行依赖注入和Bean... 目录在 Spring Boot 中使用 @Autowired 和 @Bean 注解示例背景1. 定义 Stud

Python如何实现PDF隐私信息检测

《Python如何实现PDF隐私信息检测》随着越来越多的个人信息以电子形式存储和传输,确保这些信息的安全至关重要,本文将介绍如何使用Python检测PDF文件中的隐私信息,需要的可以参考下... 目录项目背景技术栈代码解析功能说明运行结php果在当今,数据隐私保护变得尤为重要。随着越来越多的个人信息以电子形

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景