我正在从我的Android应用中的GoPro实时流式传输。我使用ffmpeg从GoPro接收流数据,并使用vlc在Surfaceview中播放数据。我使用了KonradIT here提供的代码。 ffmpeg使用的主要命令是:
-fflags nobuffer -f mpegts -i udp://:8554 -f mpegts udp://127.0.0.1:8555/gopro?pkt_size=64
和vlclib的选项是:
options.add("--aout=opensles");
options.add("--audio-time-stretch");
options.add("-vvv");
输出结果更糟。它比较笨拙,速度约为17 FPS。而且令人烦恼的是,流式传输的图片非常小,据我尝试,还没有办法将其放大和拉伸。我想知道是否有任何命令来加速流传输(无论如何,即使通过降低质量)?在ffmpeg或vlc旁边。
如果仅是中继数据包,请尝试以下操作:
ffmpeg -fflags nobuffer -f mpegts -i udp://:8554 -c:v copy -c:a copy -f mpegts udp://127.0.0.1:8555/gopro?pkt_size=1316
您可以根据网络的MTU大小(<1500)使用不同的数据包大小进行播放。检查延迟。
使用此命令,我们不会对传入的数据包进行转码,调整大小和中继。