Java 输入新图像时保持ffmpeg将图像转换为视频
有没有办法让ffmpeg转换传入HLS的图像,并随时停止 我正在使用ffmpeg将图像转换为m3u8/ts流媒体。摄像头设备将全天候发送图像,ffmpeg将在用户请求时转换这些图像,直到他们停止观看 现在,我用java网络从摄像机设备获取图像,然后将这些图像移到FFMPEG输入目录,并用C++转换。这是一个循环来完成这项工作,所以每次移动图像时都会执行新的ffmpeg 问题是剩下的ts文件太多,占用了服务器上的大量空间。所以我尝试用delete_segments选项删除这些片段,但由于每次都执行ffmpeg,所以它无法删除之前由ffmpeg生成的片段 以下是我考虑的一些方法:Java 输入新图像时保持ffmpeg将图像转换为视频,java,c++,ffmpeg,http-live-streaming,Java,C++,Ffmpeg,Http Live Streaming,有没有办法让ffmpeg转换传入HLS的图像,并随时停止 我正在使用ffmpeg将图像转换为m3u8/ts流媒体。摄像头设备将全天候发送图像,ffmpeg将在用户请求时转换这些图像,直到他们停止观看 现在,我用java网络从摄像机设备获取图像,然后将这些图像移到FFMPEG输入目录,并用C++转换。这是一个循环来完成这项工作,所以每次移动图像时都会执行新的ffmpeg 问题是剩下的ts文件太多,占用了服务器上的大量空间。所以我尝试用delete_segments选项删除这些片段,但由于每次都执行
使用选项1会容易得多,但如果我可以使用ffmpeg自己的功能来实现这一点,那就太好了。您可以使用输入文件列表,它可以是一个特殊文件(例如FIFO管道) 然后,您的命令可能如下所示:
mkfifo mylist.pipe
ffmpeg-f concat-safe 0-i mylist.pipe output.mkv
您可以将每个图像添加到mylist.pipe,如下所示:
echo "file '/path/to/image.png'" >mylist.pipe
echo "file '/path/to/image2.png'" >mylist.pipe
如果路径是相对的,则不需要-safe 0
部分
请参见ffmpeg应自动更新图像,假设
-i image.jpg
,并且每次需要更新时,另一个图像会自动重命名为image.jpg
,以替换旧图像。在没有看到你的命令的情况下,不能提出任何其他建议。看见