我正在关注a guide to live WebM streaming through FFMpeg / FFServer并遇到一个有趣的错误。我尝试使用DirectShow网络摄像头源,以及使用-vcodec副本的现有WebM(有限长度)视频。最初,两者都将设法连接到FFServer(我可以看到POST 200 OKs到/feed1.ffm),甚至可能发送一两帧,但FFMpeg与av_interleaved_write_frame(): Unknown error
崩溃。 (同时,FFServer看起来没问题。)
这似乎是错误的一个不寻常的变体 - 通常更常见的是,例如,av_interleaved_write_frame(): I/O error
(表示文件损坏)。有没有人看到这个错误,更好的是,谁能告诉我如何修复它?
ffmpeg -re -i univac.webm -vcodec copy -acodec copy -f webm http://[my server]/feed1.ffm
ffmpeg -f dshow -i video="[my dshow source]" -f webm http://[my server]/feed1.ffm
ffserver -f ffserver.conf
这只是上述指南中提供的略有不同的变化。
Port 8080
BindAddress 0.0.0.0
MaxHTTPConnections 2000
MaxClients 5
# MaxBandwidth 10000
CustomLog -
NoDaemon
<Feed feed1.ffm>
File ./feed1.ffm
FileMaxSize 1G
ACL allow [IP of the machine with ffmpeg]
</Feed>
<Stream test.webm>
Feed feed1.ffm
Format webm
# Audio settings
AudioCodec vorbis
AudioBitRate 64
# Video settings
VideoCodec libvpx
VideoSize 640x480
VideoFrameRate 30
AVOptionVideo flags +global_header
AVOptionVideo cpu-used 0
AVOptionVideo qmin 10
AVOptionVideo qmax 42
AVOptionVideo quality good
AVOptionAudio flags +global_header
VideoBitRate 400
# Streaming settings
PreRoll 15
StartSendOnKey
</Stream>
avserver version 0.8.6-6:0.8.6-1ubuntu2, Copyright (c) 2000-2013 the Libav developers
built on Mar 30 2013 with gcc 4.7.2
AVserver started
[current time] - [GET] "/feed1.ffm HTTP/1.1" 200 4149
[current time] - [POST] "/feed1.ffm HTTP/1.1" 200 4096
答案 0 :(得分:2)
这可能是由于使用了不同版本的ffmpeg和ffserver。 尝试使用相同的版本。他们应该没有问题。 另外,只使用libav或ffmpeg,因为它们可能彼此不完全兼容。
答案 1 :(得分:0)
连接是通过tcp建立的,并且在我收到客户端错误之后&#39; av_interleaved_write_frame():未知错误&#39;。我得到了连接超时&#39;在服务器上。
对我来说,我发现我在ffmpeg配置为在客户端上使用的同一端口上侦听了其他进程。
检查used ports命令:
(windows)netstat -a -b
(ubuntu)netstat -a -p
我在文件夹中使用了自定义ffmpeg。该命令用于&#39; ffmpeg&#39;使用了错误的ffmpeg。然后我将其更改为&#39; ./ ffmpeg&#39;。