http://stackoverflow.com/questions/19604815/main-input-error-and-delays-when-libvlc-stream-images-in-memory
为了找到错误我打开以下的参数:
"--verbose=2", // Be much more verbose then normal for debugging purpose
这样可以得到更多的debug信息。
我得到这样的信息:main warning: late buffer for mux input
经过查阅发现,正确的解决方法就是,在transcode里设置venc=x264{preset=ultrafast,tune=zerolatency}这样的参数:
sprintf(smem_options_transcode,"#transcode{venc=x264{preset=ultrafast,tune=zerolatency},acodec=none}:rtp{mux=ts,dst=127.0.0.1,port=5004}");
这样延迟可以控制在3秒以内,当然了,可以使用其他的方法进一步减少延迟,譬如在client端减少caching的数值等等。
解决方法参考:
https://forum.videolan.org/viewtopic.php?f=4&t=95364
没有评论:
发表评论