首页 > 解决方案 > 使用 ffmpeg 流式传输单个(持续更新的)图像文件

问题描述

我正在尝试将图像文件流式传输到 twitch - 这个想法是文件不断更新。

使用

ffmpeg \
    -re \
    -framerate 10 \
    -loop 1 \
    -f image2 \
    -i "/path/to/file.png" \
    -c:v libx264 \
    -preset superfast \
    -tune zerolatency \
    -pix_fmt yuv420p \
    -s 1000x1000 \
    -r 25 \
    -f flv rtmp://asdf.twitch.tv/app/asdf

流最初可以工作,但在修改并重新保存文件后,twitch 显示错误(There was a network error. Please try again. (Error #2000)),而 ffmpeg 继续运行而没有任何错误。

然后,当我再次重新保存文件时, ffmpeg 停止,

[flv @ 0x7faa6201c200] Failed to update header with correct duration. 71.0kbits/s speed=0.659x
[flv @ 0x7faa6201c200] Failed to update header with correct filesize.

任何想法这里出了什么问题?


编辑:

-stream_loop -1似乎没有帮助,因为我现在得到了这个:

在此处输入图像描述

标签: ffmpegvideo-streamingstreamingtwitch

解决方案


如果读取和写入不是原子的,则可能发生读取错误,image2 解复用器中止。替换-loop 1-stream_loop -1使用将在失败时继续重试的通用循环代码。


推荐阅读