FFMPEG RTMP在Ubuntu 14.0.4上的red5pro模块中不起作用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FFMPEG RTMP在Ubuntu 14.0.4上的red5pro模块中不起作用相关的知识,希望对你有一定的参考价值。

以下命令在我的java模块中不起作用(这需要从实时流中捕捉并保存)Runtime.getRuntime()。exec(“ffmpeg -i ”rtmp://127.0.0.1:1935 / live / mytest live = 1 timeout = 2 “ - f image2 -vframes 1 /snaps/testo.jpg”);

如果我在Ubuntu 14.0.4控制台上使用相同的命令,它的工作原理。相同的命令在我的red5pro模块上工作,而不是在Ubuntu上工作。

当我使用String [] execStr = {“/ usr / local / bin / fumpeg”,“ - i”,“tompmp://127.0.0.1:1935 / live / mytest”,“live = 1”,“timeout = 2" , “ - F”, “图像2”, “ - vframes”, “1”, “/卡扣/ tt.jpg”}; ProcessBuilder pb = new ProcessBuilder(“ffmpeg -i rtmp:// localhost / live / mytest live = 1 timeout = 2 -f image2 -vframes 1 /snaps/testo.jpg”);

它始终抛出未找到的流(在red5pro控制台中)

答案

我不懂Java(除了一点,我对FFmpeg很有经验),但我认为你应该写这样的代码:

String[] execStr = {"/usr/local/bin/ffmpeg", "-i", "rtmp://127.0.0.1:1935/live/mytest", "live=1", "timeout=2", "-f", "image2", "-vframes", "1", "/snaps/tt.jpg"};
ProcessBuilder pb = new ProcessBuilder(execStr);

或者像这样:

String[] execStr = {"/usr/local/bin/ffmpeg", "-i", ""rtmp://127.0.0.1:1935/live/mytest live=1 timeout=2"", "-f", "image2", "-vframes", "1", "/snaps/tt.jpg"};
ProcessBuilder pb = new ProcessBuilder(execStr);

我从这里检查:https://docs.oracle.com/javase/7/docs/api/java/lang/ProcessBuilder.html

以上是关于FFMPEG RTMP在Ubuntu 14.0.4上的red5pro模块中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Python 通过ffmpeg实现实时推流(ubuntu20.04+ffmpeg+nginx)

FFmpeg命令读取RTMP流如何设置超时时间

使用FFMPEG在windows平台下推rtmp流

命令行利用ffmpeg实现rtmp推流《转》

ffmpeg udp 直播发布到 rtmp

ffmpeg - 通过 RTMP 连续文件流式传输