我在AVB上工作,我们在讲话者端和听众端创建了gstreamer插件,我们使用这些插件来传输存储的媒体。
我正在使用下面的管道
讲话者端:
gst-launch-1.0 filesrc location=/home/input.mp4!排队!avbsink interface=eth0 fd=0 (这里的avbsink是用来传输avb数据包的属性)
监听者端:
gst-launch-1.0 avbsrc interface=eth0 dataSync=1 mediaType=0 fd=0!排队!qtdemux name=mux mux.video_0!排队!avdec_h264!autovideosink mux.audio_0!排队!解码器!自动音频链接(我尝试了vaapidecode和vaapisink,而不是硬件加速器的avdec_h264和autovideosink )
监听程序端上的逗号为
"WARNING: from element /GstPipeline:pipeline0/GstVaapisink0:正在删除大量缓冲区。
其他调试信息:
C(2683):/GstPipeline:pipeline0/GstVaapiSink:vaapisink0;():gstbasesink.c(2683):gstbasesink.c(2683):gst_base_sink_is_too_late():gstbasesink.c
可能存在时间戳问题,或者这台计算机太慢。“
我已经看到了一种使用sync=false的解决方案,然后我添加了带有vaapisink的sync=false,错误消息得到了消除,但仍然视频播放不流畅。它连续的门控停止和再次启动。
是否有持续播放视频的解决方案。(只有高质量的视频(720p或更高)不能播放,应用程序正在为低质量的视频工作)。
发布于 2015-04-16 21:00:43
看起来缓冲区的大小不够,因为一帧高清视频有更多的像素。我可以建议的另一点是,您可以在将帧发送到监听器之前应用某种压缩算法,但我不确定压缩是否与任何一种AVB协议相矛盾。
https://stackoverflow.com/questions/21930143
复制相似问题