我一直试图让ffmpeg在rtmp中流式传输,但始终拒绝连接到端口1935。我真的不知道我还能做些什么来允许这种连接。
这是我正在运行的规格。
这是我运行的脚本:
ffmpeg -i "test.mp4" -c:v copy -c:a copy -f flv "rtmp://127.0.0.1/stream/test"
我得到的错误是:
[tcp @ 0x55ff05ab8ce0] Connection to tcp://127.0.0.1:1935 failed: Connection refused
我已经进行了一些研究,并且涉及到有关ffserver.conf的许多帖子,并且进行了这些更改,但仍然没有运气。这是我的配置文件。我也曾经使用此配置运行过ffserver。
HTTPPort 8090
HTTPBindAddress 127.0.0.1
MaxHTTPConnections 2000
MaxClients 1000
MaxBandwidth 1000
CustomLog -
<Feed feed1.ffm>
File /tmp/feed1.ffm
FileMaxSize 200K
# Only allow connections from localhost to the feed.
ACL allow 127.0.0.1
ACL allow localhost
ACL allow 192.168.0.0 192.168.255.255
</Feed>
<Stream test1.mpg>
# coming from live feed 'feed1'
Feed feed1.ffm
Format mpeg
AudioBitRate 32
# Number of audio channels: 1 = mono, 2 = stereo
AudioChannels 2
AudioSampleRate 44100
# Bitrate for the video stream
VideoBitRate 64
# Ratecontrol buffer size
VideoBufferSize 40
# Number of frames per second
VideoFrameRate 3
</Stream>
<Stream test.asf>
Feed feed1.ffm
Format asf
VideoFrameRate 15
VideoSize 352x240
VideoBitRate 256
VideoBufferSize 40
VideoGopSize 30
AudioBitRate 64
StartSendOnKey
</Stream>
# Special streams
# Server status
<Stream stat.html>
Format status
ACL allow localhost
ACL allow 127.0.0.1
ACL allow 192.168.0.0 192.168.255.255
#FaviconURL http://pond1.gladstonefamily.net:8080/favicon.ico
</Stream>
<Redirect index.html>
URL http://www.ffmpeg.org/
</Redirect>
这是我的ufw状态:
-- ------ ----
22/tcp ALLOW Anywhere
22 ALLOW Anywhere
1935/tcp ALLOW Anywhere
22/tcp (v6) ALLOW Anywhere (v6)
22 (v6) ALLOW Anywhere (v6)
1935/tcp (v6) ALLOW Anywhere (v6)
但还是一无所有,我还在iptables中打开了端口,但是没有运气。这样做的方法如下:
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 1935 -j ACCEPT
and
iptables -A OUTPUT -m state --state NEW -m tcp -p tcp --dport 1935 -j ACCEPT
什么也没有,每次我运行ffmpeg时,我都会被拒绝连接。我以前安装过nginx只是为了测试,但没有运气。
我在这里做错了什么?该端口不是现在应该打开吗?
谢谢
答案 0 :(得分:0)
我发现,我正在使用Nginx RTMP模块-由于某些原因Nginx RTMP在Ubuntu上无法正常运行,但在Alpine 3.8上运行良好-当我启动nginx rtmp docker容器并暴露1935年和80一切开始时工作正常。听着学到的话,切勿在ubuntu上安装nginx rtmp模块。
答案 1 :(得分:0)
@ JJ-the-Second,我一直在本地使用ubuntu上的nginx rtmp模块,它工作得很好。但是,我没有将流发送到localhost
,而是将其发送到0.0.0.0
或handleText=(key, value)=>{
this.setState({
[key] : value
})
}
<input type="text"
onChange={(e) => this.handleText('firstname',e.target.value)}
id="inputText"
value={this.state.firstname}
/>
<input type="text"
onChange={(e) => this.handleText('lastname',e.target.value)}
id="inputText"
value={this.state.lastname}
/>