gpt4 book ai didi

facebook - 可以使用 ffmpeg 流式传输到 Facebook,但在使用 tee 时不能

转载 作者:行者123 更新时间:2023-12-04 22:46:04 24 4
gpt4 key购买 nike

我正在尝试使用 ffmpeg 同时流式传输到 YouTube 和 Facebook。

我可以单独做,但我想使用“tee”将编码结果发送到两个地方。

如果我这样做:

ffmpeg -re -i pipe:0 -acodec libfdk_aac -bsf:a aac_adtstoasc \
-ar 44100 -b:a 128k -pix_fmt yuv420p -profile:v baseline \
-s 720x480 -bufsize 2048k -vb 1300k -maxrate 4000k -deinterlace \
-vcodec libx264 -g 25 -r 25 \
-f flv "rtmp://rtmp-api.facebook.com:80/rtmp/key"

它工作得很好。

但如果我这样做:

ffmpeg -re -i pipe:0 -acodec libfdk_aac -bsf:a aac_adtstoasc \
-ar 44100 -b:a 128k -pix_fmt yuv420p -profile:v baseline \
-s 720x480 -bufsize 2048k -vb 1300k -maxrate 4000k -deinterlace \
-vcodec libx264 -g 25 -r 25 \
-f tee -map 0:v -map 0:a \
"[f=flv]rtmp://rtmp-api.facebook.com:80/rtmp/key"

然后我得到一个 rtmp 104 错误。

如果那行得通,那么我可以这样做:

        "[f=flv]rtmp://rtmp-api.facebook.com:80/rtmp/key|[f=flv]rtmp://youtube.etc"

这将流式传输到两者。

我确实发现我需要“-bsf:a aac_adtstoasc”,否则编码器会损坏,提示格式错误的位。

有什么想法吗?

错误仅与 Facebook 有关。 YouTube 运行良好。

控制台输出:

  Metadata:
encoder : Lavf57.72.101
Stream #0:0: Video: h264 (libx264), yuv420p, 720x480 [SAR 8:9 DAR 4:3], q=-1--1, 1300 kb/s, 29.97 fps, 29.97 tbn, 29.97 tbc
Metadata:
encoder : Lavc57.95.101 libx264
Side data:
cpb: bitrate max/min/avg: 2000000/0/1300000 buffer size: 2048000 vbv_delay: -1
Stream #0:1: Audio: aac (libfdk_aac), 44100 Hz, stereo, s16, 128 kb/s
Metadata:
encoder : Lavc57.95.101 libfdk_aac
frame= 61 fps= 30 q=25.0 size=N/A time=00:00:01.97 bitrate=N/A speed=0.961x
WriteN, RTMP send error 104 (136 bytes)

最佳答案

FLV 格式需要全局 header 。当 ffmpeg 直接输出到 FLV 时 -f flv,编码器收到信号生成全局 header 。但是当 -f tee 是主要/父多路复用器时,该标志未设置。因此,它必须通过 -flags +global_header 手动设置。

关于facebook - 可以使用 ffmpeg 流式传输到 Facebook,但在使用 tee 时不能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43968879/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com