根据我的理解,“ffprobe”将以JSON格式提供与文件相关的数据。因此,我已经在我的Ubuntu计算机中安装了ffprobe,但是我不知道如何使用Java / Grails访问ffprobe JSON响应。
预期回应格式:
{
"format": {
"filename": "/Users/karthick/Documents/videos/TestVideos/sample.ts",
"nb_streams": 2,
"nb_programs": 1,
"format_name": "mpegts",
"format_long_name": "MPEG-TS (MPEG-2 Transport Stream)",
"start_time": "1.430800",
"duration": "170.097489",
"size": "80425836",
"bit_rate": "3782576",
"probe_score": 100
}
}
这是我的常规代码
def process = "ffprobe -v quiet -print_format json -show_format -show_streams HelloWorld.mpeg ".execute()
println "Found ${process.text}"
render process as JSON
我能够获得过程对象,而我无法获得json响应
我应该将流程对象转换为json对象吗?
输出:
找到java.lang.UNIXProcess@75566697
org.codehaus.groovy.grails.web.converters.exceptions.ConverterException:使用类java.lang.UNIXProcess转换Bean时出错
最佳答案
Grails与此无关。 Groovy可以以非常简单的方式执行任意的shell命令:
"mkdir foo".execute()
或者,对于更高级的功能,您可以考虑使用ProcessBuilder。最终,您需要执行ffprobe,然后捕获要在应用程序中使用的JSON输出流。
关于json - 我正在尝试将 'ffprobe'与Java或groovy一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30194921/