因此,对于一个GNURadio项目,我将MPEG-2视频发送到我的电视上。所述数据和视频的实际传递是良好的,但是,视频没有被正确解码。它大多是空白的,到处都是闪烁的块,快速移动的场景有更多的“垃圾”。它是一种看起来像这样,除了大部分是黑色和“块”随机出现和消失。它应该是像这样。
在将它添加到我的混频器进行测试之前,我使用的是视频测试。我试过avconv,不管出于什么原因,它没有这个问题。
这是管道,也是在下面:
VIDEOFORMATIN='video/x-raw, format=UYVY, width=1920, height=1080, framerate=60/1, interlaced='true''
gst-launch-1.0 -v videotestsrc do-timestamp=true is-live=true ! $VIDEOFORMATIN \
! videoconvert ! queue ! \
avenc_mpeg2video bitrate=15000000 rc-max-rate=17000000 rc-min-rate=14000000 rc-buffer-size=300000 \
rc-buffer-aggressivity=0.25 ! \
filesink location=video.mpeg它可以在mpv、SMPlater和TSReader中很好地播放视频,但是在mpv的命令输出中出现的错误是“
"[libav] NULL: start time is not set in estimate_timings_from_pts"还有..。
"No PTS found! Making something up"知道会发生什么吗?当PTS/DTS是活动源时,如何编写正确的PTS/DTS值?是的,我必须使用MPEG-2和gstreamer。
发布于 2014-07-30 15:20:36
正如您注意到的,您缺少PTS/DTS值,这是解码器必不可少的时间戳:它告诉您何时解码和呈现帧。我不认为您可以手动生成它,因为它通常是在穆兴操作期间完成的。
似乎mpv成功地模仿了他们,这就是为什么你有一个干净的渲染,但显然你的电视不能。
你试过和ffmpeg联系吗?
发布于 2014-07-30 16:08:48
这也可能是因为编码管道正面临严重的压力。
你收到任何关于编码管道的警告吗?例如,使用GST_DEBUG=3。您使用的是什么版本的GStreamer?
通过视频测试生成1920x1080@60fps流是.cpu非常密集(它用于调试目的)。
https://stackoverflow.com/questions/23965614
复制相似问题