Ffmpeg av_交错_写入_帧()流式传输WebM时发生未知错误
我在跟踪并遇到了一个有趣的错误。我尝试过使用DirectShow网络摄像头源,也尝试过使用-vcodec拷贝的现有WebM(有限长度)视频。最初,两者都将设法连接到FFServer(我可以看到/feed1.ffm上的200个OK),甚至可能发送一两个帧,但随后FFMpeg会崩溃,出现Ffmpeg av_交错_写入_帧()流式传输WebM时发生未知错误,ffmpeg,Ffmpeg,我在跟踪并遇到了一个有趣的错误。我尝试过使用DirectShow网络摄像头源,也尝试过使用-vcodec拷贝的现有WebM(有限长度)视频。最初,两者都将设法连接到FFServer(我可以看到/feed1.ffm上的200个OK),甚至可能发送一两个帧,但随后FFMpeg会崩溃,出现av\u interleaved\u write\u frame():未知错误。(与此同时,FFServer似乎还不错。) 这似乎是该错误的一个不寻常的变体-通常更常见的情况是,例如,获取av_交错_write_fr
av\u interleaved\u write\u frame():未知错误
。(与此同时,FFServer似乎还不错。)
这似乎是该错误的一个不寻常的变体-通常更常见的情况是,例如,获取av_交错_write_frame():I/O错误(表示文件损坏)。有人看到过这个错误吗?更好的是,有人能告诉我如何修复它吗
FFMpeg命令
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
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>
端口8080
BindAddress 0.0.0.0
MaxHTTPConnections 2000
MaxClients 5
#最大带宽10000
自定义日志-
诺达蒙
文件./feed1.ffm
FileMaxSize 1G
ACL允许[ffmpeg机器的IP]
饲料1.ffm
格式webm
#音频设置
音频编解码器
音频比特率64
#视频设置
视频编解码器libvpx
视频大小640x480
视频帧率30
AVOptionVideo标志+全局_标题
AVOptionVideo cpu使用了0
AVOptionVideo qmin 10
AVOptionVideo qmax 42
视频质量好
AVOptionAudio标志+全局_标题
视频比特率400
#流媒体设置
预卷15
斯塔森多基
FFserver日志
avserver版本0.8.6-6:0.8.6-1ubuntu2,版权所有(c)2000-2013 Libav开发者
于2013年3月30日建成,带有gcc 4.7.2
AVserver已启动
[当前时间]-[GET]“/feed1.ffm HTTP/1.1”200 4149
[当前时间]-[POST]“/feed1.ffm HTTP/1.1”200 4096
这可能是由于使用不同版本的ffmpeg和ffserver造成的。
尝试使用相同的版本。他们应该毫无问题地工作。
此外,仅使用libav或ffmpeg,因为它们可能彼此不太兼容。连接是由tcp建立的,在我收到客户端“av_interleaved_write_frame():未知错误”上的错误后。我在服务器上看到“连接超时” 对我来说,我发现在配置为在客户端上使用ffmpeg的同一端口上监听了另一个进程 要检查已使用的端口命令,请执行以下操作: (windows)netstat-a-b
(ubuntu)netstat-a-p
我在文件夹中使用了自定义ffmpeg。使用“ffmpeg”的命令使用了错误的ffmpeg。然后我将其改为“/ffmpeg”。最后,我用一种不基于ffmpeg的完全不同的方法解决了我的具体问题,但我相信问题确实源于使用不同版本的ffmpeg和ffserver。你能详细说明一下吗?我遇到了同样的问题,而且两个版本完全相同。在同一端口上侦听的进程是否会允许OP描述的连接,然后崩溃?当您观察到这种行为时,您收到了什么样的错误消息?详细说明你的答案。