我跟踪通过WebM / FFServer直播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命令
ffmpeg -re -i univac.webm -vcodec copy -acodec copy -f webm http://[my server]/feed1.ffmffmpeg -f dshow -i video="[my dshow source]" -f webm http://[my server]/feed1.ffmFFserver命令
ffserver -f ffserver.conf
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>FFserver日志
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
发布于 2013-08-30 09:49:14
这可能是由于使用了不同版本的ffmpeg和ffserver。尝试使用相同的版本。他们应该毫无问题地工作。另外,只使用libav或ffmpeg,因为它们可能并不完全兼容。
发布于 2015-04-16 15:03:50
连接是由tcp建立的,在我得到客户机'av_interleaved_write_frame():未知错误‘上的错误之后。服务器上的“连接超时”。
对我来说,我发现我在配置ffmpeg用于客户端的端口上监听了另一个进程。
要检查已使用的端口命令:
(windows) netstat -a -b
(ubuntu) netstat -a -p
我在文件夹里使用了自定义的ffmpeg。使用' ffmpeg‘的命令使用了错误的ffmpeg。然后我把它改为./ffmpeg。
https://stackoverflow.com/questions/18274693
复制相似问题