首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >播放中的视频流延迟?

播放中的视频流延迟?
EN

Stack Overflow用户
提问于 2017-02-22 19:35:27
回答 1查看 3.9K关注 0票数 1

我试图用Windows上的ffmpeg 3.2.2从一个5MP USB摄像头上捕捉和播放视频。下面是我使用的命令行:

代码语言:javascript
复制
ffmpeg -f dshow -video_size 320x240 -framerate 30 -i video="HD USB Camera" -vcodec libx264 -preset ultrafast -tune zerolatency -g 60 -f mpegts udp://192.168.1.100:10000

我的流的目的地(同一子网上的Ubuntu框)正在通过以下方式运行ffplay:

代码语言:javascript
复制
ffplay -i udp://127.0.0.1:10000

这是可行的,但视频流似乎被延迟了8-10秒。我的理解是,在接收到i帧之前,目标无法开始显示流,因此我尝试指定GOP值为60,认为这将导致每2秒插入i帧(@ 30 FPS)。

正在进行转码的Windows机器运行的是i7-3840QM @ 2.80GHz,内存为32 GB。FFmpeg似乎使用很少的CPU (比如2%),所以它看起来不像是CPU绑定的。作为一个测试,我尝试摄入一个MP4文件而不执行任何转码(ffmpeg -re -i localFile.mp4 -c copy -f mpegts udp://192.168.1.100:10000),但是在Ubuntu系统上显示流还需要几秒钟的时间。

另外,我还在评估Wowza流媒体引擎服务器的试用版本,当我将ffmpeg流定向到Wowza时,在Wowza测试播放器开始播放之前,我会得到相同的8-10秒的延迟。不管它的价值是什么,一旦流开始播放,它似乎运行良好(除了事实,一切都“落后”了几秒钟)。

我刚开始使用视频流,所以我可能在这里遗漏了一些显而易见的东西,但谁能告诉我是什么原因导致了这种延迟,或者建议我如何进一步解决这个问题?谢谢!

EN

回答 1

Stack Overflow用户

发布于 2017-02-22 19:54:11

尝试设置以下值:

分析整数(输入) 指定要分析多少微秒来探测输入。更高的值将能够检测到更准确的信息,但会增加延迟。它默认为5,000,000微秒=5秒。 正整数(输入) 设置探测大小(以字节为单位),即要分析的数据大小以获取流信息。更高的值将允许检测更多的信息,以防信息分散到流中,但会增加延迟。必须是不小于32的整数。默认情况下是5000000。

FFmpeg文档

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42400680

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档