首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将PTS/DTS写入MPEG流(Gstreamer)

将PTS/DTS写入MPEG流(Gstreamer)
EN

Stack Overflow用户
提问于 2014-05-31 01:39:59
回答 2查看 2.5K关注 0票数 1

因此,对于一个GNURadio项目,我将MPEG-2视频发送到我的电视上。所述数据和视频的实际传递是良好的,但是,视频没有被正确解码。它大多是空白的,到处都是闪烁的块,快速移动的场景有更多的“垃圾”。它是一种看起来像这样,除了大部分是黑色和“块”随机出现和消失。它应该是像这样。

在将它添加到我的混频器进行测试之前,我使用的是视频测试。我试过avconv,不管出于什么原因,它没有这个问题。

这是管道,也是在下面:

代码语言:javascript
复制
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的命令输出中出现的错误是“

代码语言:javascript
复制
"[libav] NULL: start time is not set in estimate_timings_from_pts"

还有..。

代码语言:javascript
复制
"No PTS found! Making something up"

知道会发生什么吗?当PTS/DTS是活动源时,如何编写正确的PTS/DTS值?是的,我必须使用MPEG-2和gstreamer。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-30 15:20:36

正如您注意到的,您缺少PTS/DTS值,这是解码器必不可少的时间戳:它告诉您何时解码和呈现帧。我不认为您可以手动生成它,因为它通常是在穆兴操作期间完成的。

似乎mpv成功地模仿了他们,这就是为什么你有一个干净的渲染,但显然你的电视不能。

你试过和ffmpeg联系吗?

票数 0
EN

Stack Overflow用户

发布于 2014-07-30 16:08:48

这也可能是因为编码管道正面临严重的压力。

你收到任何关于编码管道的警告吗?例如,使用GST_DEBUG=3。您使用的是什么版本的GStreamer?

通过视频测试生成1920x1080@60fps流是.cpu非常密集(它用于调试目的)。

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

https://stackoverflow.com/questions/23965614

复制
相关文章

相似问题

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