FFMPEG 来自 BlackMagic 输入的多个输出

标签 ffmpeg stream one-to-many outputstream wowza

我目前需要帮助来实现一个输入的多个输出。
现在,输出设置如下:

ffmpeg -re -f decklink -i "DeckLink Mini Recorder" -y -pix_fmt yuv420p -c:v h264 -preset fast -tune zerolatency -c:a aac -ac 2 -b:a 128k -ar 44100 -async 1 -b:v 2300k -g 5 -probesize 32 -framerate 30 -movflags +faststart -s 1280x720 -bufsize 1000k -maxrate 3072k -shortest -f flv "rtmp://10.0.0.172:1935/Testing/live_720p"
ffmpeg -re -i "rtmp://10.0.0.172:1935/Testing/live_720p" -c:v h264 -preset fast -tune zerolatency -c:a aac -ac 2 -b:a 114k -ar 44100 -async 1 -b:v 900k -g 5 -probesize 32 -framerate 30 -movflags +faststart -s 854x480 -bufsize 400k -maxrate 1000k -shortest -f flv "rtmp://10.0.0.172:1935/Testing/live_480p_hq"
ffmpeg -re -i "rtmp://10.0.0.172:1935/Testing/live_720p" -c:v h264 -preset fast -tune zerolatency -c:a aac -ac 2 -b:a 114k -ar 44100 -async 1 -b:v 550k -g 5 -probesize 32 -framerate 30 -movflags +faststart -s 854x480 -bufsize 400k -maxrate 500k -shortest -f flv "rtmp://10.0.0.172:1935/Testing/live_480p_lq"
ffmpeg -re -i "rtmp://10.0.0.172:1935/Testing/live_720p" -c:v h264 -preset fast -tune zerolatency -c:a aac -ac 2 -b:a 114k -ar 44100 -async 1 -b:v 450k -g 5 -probesize 32 -framerate 30 -movflags +faststart -s 640x360 -bufsize 400k -maxrate 500k -shortest -f flv "rtmp://10.0.0.172:1935/Testing/live_360p" 

这使用了相当多的处理能力,并且还产生了不必要的延迟(因为我必须先流式传输到 WOWZA,然后返回到 FFMPEG,然后再返回到 WOWZA)。

我想优化这个。

我一直在尝试几种方法,但我只设法溢出了decklink缓冲区。我怎么能解决这个问题?

最佳答案

根据@Brad 的评论,您可以选择源输入,然后在单个命令行上创建多个输出,如下所示:

ffmpeg -re -f decklink -i "DeckLink Mini Recorder" -y -pix_fmt yuv420p \
    -c:v h264 -preset fast -tune zerolatency -c:a aac -ac 2 -b:a 128k -ar 44100 -async 1 -b:v 2300k -g 5 -probesize 32 -framerate 30 -movflags +faststart -s 1280x720 -bufsize 1000k -maxrate 3072k -shortest -f flv "rtmp://10.0.0.172:1935/Testing/live_720p" \
    -c:v h264 -preset fast -tune zerolatency -c:a aac -ac 2 -b:a 114k -ar 44100 -async 1 -b:v 900k -g 5 -probesize 32 -framerate 30 -movflags +faststart -s 854x480 -bufsize 400k -maxrate 1000k -shortest -f flv "rtmp://10.0.0.172:1935/Testing/live_480p_hq" \
    -c:v h264 -preset fast -tune zerolatency -c:a aac -ac 2 -b:a 114k -ar 44100 -async 1 -b:v 550k -g 5 -probesize 32 -framerate 30 -movflags +faststart -s 854x480 -bufsize 400k -maxrate 500k -shortest -f flv "rtmp://10.0.0.172:1935/Testing/live_480p_lq" \
    -c:v h264 -preset fast -tune zerolatency -c:a aac -ac 2 -b:a 114k -ar 44100 -async 1 -b:v 450k -g 5 -probesize 32 -framerate 30 -movflags +faststart -s 640x360 -bufsize 400k -maxrate 500k -shortest -f flv "rtmp://10.0.0.172:1935/Testing/live_360p"

(如果您在 Windows 上运行它,则将以上内容复制并粘贴到单个命令中 - Windows 命令行不支持反斜杠行继续功能)。

关于FFMPEG 来自 BlackMagic 输入的多个输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52061089/

相关文章:

FFmpeg 重新加载更改图像覆盖,同时使用复杂的过滤器/

c++ - const char * 到 std::basic_iostream

stream - 理解 stanag 4609 klv 格式

android - TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/windows 的含义

php - 为文本文件生成缩略图

android - 错误 : libfaac not found while compiling FFMPEG library

ffmpeg - 使用 ffmpeg 为 Cloud Speech-to-Text 录制流音频

hibernate 插入级联不插入外键

java - Hibernate 在更新时添加 OneToMany 实体两次

java - 在 hibernate 中一对多单向添加更多对象到现有列表中