【问题标题】:ffmpeg livestream from static image and audio来自静态图像和音频的 ffmpeg 直播
【发布时间】:2017-10-23 00:09:16
【问题描述】:

我正在尝试通过 ffmpeg 使用静态图像和音频文件进行直播。 ffmpeg命令是这样的

ffmpeg -re -loop 1 -f image2 -i '/tmp/11.jpg' -f lavfi -i amovie=/tmp/5117.mp3:loop=999 -video_size 600x480 -c:v libx264 -x264-参数 keyint=60 -bufsize 500k -c:a aac -ar 44100 -b:a 128k -r 30 -g 60 -pix_fmt yuv420p -f flv "rtmp://"

/tmp/11.jpg 由另一个进程生成,每秒更新两次。 ffmpeg 命令看起来不对,首先它显示这样的状态

帧= 85 fps=9.4 q=29.0 大小= 2261kB 时间=00:02:24.19 比特率= 128.4kbits/s 速度= 16x

如您所见,16x 并不好,1x 是直播的正确值。然后,过了一会儿,它显示了许多这样的警告日志

[flv @ 0x322bd60] 输出流 0:1 中的非单调 DTS;上一个:335993,当前:297752;更改为 335993。这可能会导致输出文件中的时间戳不正确。

请帮忙解决。

【问题讨论】:

    标签: video ffmpeg streaming live-streaming


    【解决方案1】:

    电影过滤器不会重置时间戳,这是 FLV 多路复用器发出 DTS 警告的原因。您可以使用实时过滤器减慢输出视频的处理速度。

    ffmpeg -loop 1 -f image2 -i '/tmp/11.jpg'
      -f lavfi -i amovie=/tmp/5117.mp3:loop=999,asetpts=N/SR/TB
      -vf realtime,scale=600:480,format=yuv420p
      -r 30 -g 60 -c:v libx264 -x264-params keyint=60 -bufsize 500k
      -c:a aac -ar 44100 -b:a 128k -f flv "rtmp://"
    

    【讨论】:

    • 太奇怪了。请在此处检查 ffmpeg 输出:i.imgur.com/ox1lgWQ.png 首先,它显示 speed=xx 视频可以播放。然后速度增加到图像中的 18.5 倍。而红线,我认为是因为我每 0.5 秒更新一次图像。可以修吗
    • 对我来说工作得很好 ffmpeg -loop 1 -f image2 -i './github.png' -f lavfi -vf realtime,scale=1280:720,format=yuv420p -r 30 -g 60 -c:v libx264 -x264-params keyint=60 -bufsize 2500k -c:a aac -ar 44100 -b:a 128k -f flv "rtmp://push.youstreamer.com/in/19908?8daa05f46cb19c9a358ca69ccb4ab839"
    猜你喜欢
    • 2018-06-03
    • 2014-10-31
    • 1970-01-01
    • 2014-02-26
    • 1970-01-01
    • 2021-04-21
    • 2020-08-08
    • 1970-01-01
    • 2018-10-19
    相关资源
    最近更新 更多