【发布时间】:2018-10-19 20:45:06
【问题描述】:
根据我的理解,这个命令应该可以工作......
ffmpeg -听 1 -i rtmp://my-host-name.com:8000/thing/input.ts -c:v libx264 -c:a aac -ac 1 -strict -2 -crf 30 -profile:v 基线 -hls_time 10 -hls_list_size 6 -hls_wrap 10 -start_number 1 stream.m3u8
它正在侦听端口 8000 上的 rtmp 连接。在 rtmp 流连接后,它应该开始在当前目录中动态生成 HLS 流。
我在其他地方像这样发送流:
ffmpeg -i input.ts -f mpegts rtmp://my-host-name.com:8000/thing/input.ts
在发送端似乎一切正常,但在监听端似乎什么都没有发生,只是抛出了很多类似这样的错误:
[rtmp @ 0x9a1280] 收到未知数据包类型 0x78
[rtmp @ 0x9a1280] 收到未知数据包类型 0x00
[rtmp @ 0x9a1280] 收到未知数据包类型 0x71
[rtmp @ 0x9a1280] 收到未知数据包类型 0x00
我不知道这些是否只是多余的。我在这里做错了吗?
【问题讨论】:
-
您是否尝试在
-i rtmp://...之前添加-f mpegts? -
太棒了,这确实是问题所在。出于某种原因,我仍然遇到一些问题,但是在将两种格式都更改为 flv 并在源代码处重新编码之后,一切都运行良好。谢谢。
-
RTMP 是 Adobe 的流式 FLV 协议,但您设置了不同的输出格式。通常,只需
-i rtmp://即可。
标签: ffmpeg