mediastreamsegmenter停止使用HLS发送id3元数据

时间:2013-05-09 19:34:05

标签: ffmpeg http-live-streaming id3 mediastreamsegmenter

我正在使用ffmpeg和Apple的mediastreamsegmenterid3taggenerator的组合来创建一个嵌入了元数据(ID3)的HLS流。我已经运行了所有应用程序,并且能够在客户端从流中检索元数据,但问题是在看似随机的时间之后,客户端停止在流上接收元数据。

以下是我现在的工作:

这是ffmpegmediastreamsegmenter部分:

ffmpeg -i udp://@:5010 -c:v libx264 -crf:v 22 -b:v 500k -preset:v veryfast -c:a libfdk_aac -b:a 64k -f mpegts - | mediastreamsegmenter -b http://localhost/stream -f /usr/local/nginx/html/stream/ -t 10 -s 4 -S 1 -D -y id3 -m -M 4242 -l log.txt

这是在端口5010上的本地主机上获取udp流,并分别将视频和音频编码为H.264和AAC。它正在将MPEG-2传输流段转移到mediastreamsegmenter,后者又生成.M3U8文件和关联的.ts文件,并将它们放在NGINX网络服务器上。 mediastreamsegmenter还在端口4242上侦听来自id3taggenerator的tcp流量,我将展示我现在如何使用它:

id3taggenerator -text '{"x":"12","y":"36"}' -a localhost:4242

正如您所看到的,我将JSON中的一些简单的x-y坐标作为文本发送到mediastreamsegmenter侦听端口4242.我实际上正在使用Python脚本来发送一些测试数据。这是脚本:

#!/usr/local/bin/python3
from subprocess import call
from time import sleep

for i in range(0, 10):
    for j in range(0, 10):
        x = str(20 * i)
        y = str(20 * j)
        print("X: " + x + " - Y: " + y)
        call(["id3taggenerator", "-text", "{\"x\":\"" + x + "\",\"y\":\"" + y + "\"}", "-a", "localhost:4242"])
        sleep(1.0)

此脚本只是使用id3taggenerator CLI发送一堆x-y坐标。我已将sleep金额从0.1调整为15,但似乎没有任何区别。从流中获取元数据的客户端应用程序仅打印出4到35个点,但从未接收到所有x-y坐标。

我想知道每帧可以发送的元数据量是否有限制,但我似乎无法找到任何指定任何这些工具的硬限制值的内容......

0 个答案:

没有答案