最近,我尝试利用 ffmpeg 将实时桌面屏幕流式传输到 Wowza 媒体服务器。
到目前为止,我在这个问题上取得了部分成功:
我设法使用UScreenCapture directx dshow过滤器记录桌面屏幕,我也能够将此记录发送到服务器。 但是,当我尝试将屏幕直接发送到服务器时,它每次都会失败。播放器缓慢缓冲,并在完成后显示一个空白屏幕(计数器不断计数)。
所以,这是工作方法
用于录制屏幕:
ffmpeg -f dshow -i video="UScreenCapture" -r 25 -vcodec libx264 output.flv
和流媒体视频:
ffmpeg -re -i <input_file_here> -map 0 -c copy -vbsf h264_mp4toannexb -f mpegts udp://stream.server.xyz:52000?pkt_size=1024
这是我使用的代码:
ffmpeg -f dshow -i video =&#34; UScreenCapture&#34; -s 宽度 x 高度 -r 帧率 -vcodec libx264 -pix_fmt yuv420p -b:v 比特率 -an - vbsf h264_mp4toannexb -f mpegts udp:// your.destination.url:PORTNUMBER ?pkt_size = some_bytes
据我所知,在升级wowza之前它运作良好。
其他一些信息:
通过Wowza日志文件,引起了我的注意。在我流式传输桌面屏幕时,服务器somhow似乎得到了不完整的数据包,但是当我流式传输视频文件时,错误并没有发生。
RTPDePacketizerMPEGTS.handleRTPPacket
WARN server comment 2013-04-11 11:26:24 - - - - - 152629.665 - - - - - - - -RTPDePacketizerMPEGTS.handleRTPPacket: Incomplete packet: 1504:1472
WARN server comment 2013-04-11 11:26:27 - - - - - 152632.782 - - - - - - - -RTPDePacketizerMPEGTS.handleRTPPacket: Incomplete packet: 1504:1472
WARN server comment 2013-04-11 11:26:31 - - - - - 152636.383 - - - - - - - -RTPDePacketizerMPEGTS.handleRTPPacket: Incomplete packet: 1504:1472
WARN server comment 2013-04-11 11:26:38 - - - - - 152643.484 - - - - - - - -RTPDePacketizerMPEGTS.handleRTPPacket: Incomplete packet: 1504:1472
WARN server comment 2013-04-11 11:26:47 - - - - - 152653.088 - - - - - - - -RTPDePacketizerMPEGTS.handleRTPPacket: Incomplete packet: 1504:1472
WARN server comment 2013-04-11 11:26:52 - - - - - 152657.587 - - - - - - - -RTPDePacketizerMPEGTS.handleRTPPacket: Incomplete packet: 1504:1472
WARN server comment 2013-04-11 11:26:56 - - - - - 152661.624 - - - - - - - -RTPDePacketizerMPEGTS.handleRTPPacket: Incomplete packet: 1504:1472
WARN server comment 2013-04-11 11:27:05 - - - - - 152670.805 - - - - - - - -RTPDePacketizerMPEGTS.handleRTPPacket: Incomplete packet: 1504:1472
导致此错误的原因是什么?有什么想法吗?
提前致谢!