繁体   English   中英

读取ffmpeg命令的输出

[英]Read output from ffmpeg command

我正在尝试从android中的ffmpeg命令读取输出。 我一直在尝试:

try {
        Process process = Runtime.getRuntime().exec("data/data/com.extremeye/cache/ffmpeg" + " -i " + videoPath + " -y " + framesPath + "%d.jpg");
        BufferedReader bufferedReader = new BufferedReader(
        new InputStreamReader(process.getInputStream()));
        StringBuilder log = new StringBuilder();
        String line;
        while ((line = bufferedReader.readLine()) != null) {
              log.append(line + "\n");
        }
        Log.d(TAG, log.toString());
    } catch (IOException e) {
    }

例如,当命令为“ ls / data / data / package / cache”时,它可以工作,但不会从ffmpeg命令中检索所需的数据。 我想要的数据应该是这些:

在此处输入图片说明

但是,当我将此代码与该命令一起使用时,它不会检索任何数据。

现在,我正在使用答案中的新代码,它似乎可以工作,但实际上却不行。 我得到这个:

[format @ 0xee7450] auto-inserting filter 'auto-inserted scaler 0' between the filter 'src' and the filter 'format'
[scale @ 0xee85f0] w:1280 h:720 fmt:yuv420p sar:1/1 -> w:1280 h:720 fmt:yuvj420p sar:1/1 flags:0x4
Output #0, image2, to '/data/data/com.extremeye/cache/frames/%d.jpg':
Metadata:
major_brand     : mp42
minor_version   : 0
compatible_brands: mp41isom
creation_time   : 2013-11-20 14:45:01
encoder         : Lavf54.6.100
Stream #0:0(und): Video: mjpeg, yuvj420p, 1280x720 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 90k tbn, 30 tbc
Metadata:
creation_time   : 2013-11-20 14:45:01
handler_name    : VideoHandler
Stream mapping:
Stream #0:0 -> #0:0 (h264 -> mjpeg)
Press [q] to stop, [?] for help
frame=    3 fps=1.1 q=2.0 size=       0kB time=00:00:00.10 bitrate=   0.0kbits/s    
frame=    5 fps=1.5 q=5.0 size=       0kB time=00:00:00.16 bitrate=   0.0kbits/s    
frame=    7 fps=1.8 q=10.2 size=       0kB time=00:00:00.23 bitrate=   0.0kbits/s    
frame=    9 fps=1.9 q=16.0 size=       0kB time=00:00:00.30 bitrate=   0.0kbits/s    
frame=   11 fps=1.9 q=21.9 size=       0kB time=00:00:00.36 bitrate=   0.0kbits/s    
frame=   12 fps=1.3 q=24.8 size=       0kB time=00:00:00.40 bitrate=   0.0kbits/s    
frame=   13 fps=1.0 q=24.8 size=       0kB time=00:00:00.43 bitrate=   0.0kbits/s    
frame=   14 fps=1.0 q=24.8 size=       0kB time=00:00:00.46 bitrate=   0.0kbits/s    
frame=   15 fps=1.1 q=24.8 size=       0kB time=00:00:00.50 bitrate=   0.0kbits/s    
frame=   17 fps=1.1 q=24.8 size=       0kB time=00:00:00.56 bitrate=   0.0kbits/s    
frame=   19 fps=1.2 q=24.8 size=       0kB time=00:00:00.63 bitrate=   0.0kbits/s    
frame=   21 fps=1.3 q=24.8 size=       0kB time=00:00:00.70 bitrate=   0.0kbits/s    
frame=   23 fps=1.4 q=24.8 size=       0kB time=00:00:00.76 bitrate=   0.0kbits/s    
frame=   25 fps=1.4 q=24.8 size=

数据检索突然中断,我不知道为什么...知道吗?

ffmpeg打印是发给stderr的消息,您正在捕获stdout。 使用getErrorStream()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM