我有java代码
String cmd = "ifconfig";
inputStream = Runtime.getRuntime().exec(cmd);
此时在linux下执行代码之后,这个inputStream里面是又内容的,我可以read到值。
问题是我把cmd改成一个获取视频时长的命令
("ffmpeg -i myVideoPath 2>&1 | grep 'Duration' | cut -d ' ' -f 4 | sed s/,//")
(需要装ffmpeg软件)并执行之后,inputStream是空的,什么都read不到。
但单独在linux控制台执行这段命令却明明会显示出视频时长。见图:
请问这是为什么?为什么在java中执行获取时长的命令就得到一个空的stream呢?
帮帮忙谢谢,
打印出来的还是无内容。
inputStream都已经是无内容了,后面的封装肯定也没有效果
首先在linux下执行你所需要的命令,确认有结果返回。
具体代码如下
因为有shell pipe。看这个例子:
String[] cmd = {看不明白什么意思,麻烦能说详细一点么?我这个问题怎么解决呢?本人linux有点小白,
追答就是 把 "ls /etc | grep release" 替换成你的 ”ffmpeg 。。。。。。。。“ 这串命令。
本回答被提问者采纳