首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Avconv生成PTS时间戳失败

Avconv生成PTS时间戳失败
EN

Stack Overflow用户
提问于 2015-03-14 04:37:51
回答 1查看 1.1K关注 0票数 1

我正在从静态图像生成H264流,如下所示:

代码语言:javascript
复制
avconv -y -r 25 -i dummy_%d.tif dummy.h264

当尝试多路复用到matroska时

代码语言:javascript
复制
avconv -i dummy.h264 -c:v copy dummy.mkv

我得到以下错误:

代码语言:javascript
复制
[matroska @ 0x8c1860] Can't write packet with unknown timestamp
av_interleaved_write_frame(): Invalid argument

因此,avconv没有为这些帧生成时间戳,并且因为matroska需要它们进行索引,所以多路复用失败了,对吧?

当股票视频播放器试图产生流时,他们也会变得同样疯狂:

代码语言:javascript
复制
mplayer dummy.h264

No pts value from demuxer to use for frame!
Video pts after filters MISSING
V: ???     0/  0 ??% ??% ??,?% 0 0 

mpv dummy.h264

No video PTS! Making something up.
V: 00:00:00 / 00:00:00 (77%)

现在,如果我这样做了:

代码语言:javascript
复制
avconv -i dummy.h264 dummy.mkv

这实际上是有效的,但是matroska容器中的原始H264流仍然缺少PTS信息。你可以用"avconv -i dummy.mkv test.h264“来确认这一点。

对于我正在做的具体项目,我需要与正确的临时秘书处信息的原始H264流。我到底怎么才能做到这一点!?

我也在处理从IP摄像头录制的视频,这些视频经常有丢失/错误的PTS信息,所以我应该能够在将它们放到matroska容器之前纠正它们的PTS-否则多路复用失败,即问题与此处描述的从静止图像生成视频的问题相同。

到目前为止,我已经尝试过视频生成:

代码语言:javascript
复制
avconv -y -fflags +genpts -r 25 -i dummy_%d.tif dummy.h264

avconv -y -fflags genpts -r 25 -i dummy_%d.tif -fflags genpts dummy.h264

对于多路复用:

代码语言:javascript
复制
avconv -y -r 25 -i dummy.h264 -r 25 -fflags genpts -filter:v "setpts=PTS-STARTPTS" dummy2.h264

avconv -fflags +genpts -i dummy.h264 -c:v copy dummy.mkv

avconv -y -r 25 -fflags +genpts -i dummy.h264 -c:v copy dummy.mkv

。。还有更多的排列。

什么都不能用!..我开始觉得这是个bug。我在Ubuntu 14.04上运行avconv 9.16-6:9.16。

开始变得绝望了。

有没有人成功地用avconv生成了PTS?

EN

回答 1

Stack Overflow用户

发布于 2016-01-26 19:11:21

试一试

代码语言:javascript
复制
mkvmerge -o output.mkv in.mkv
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29041531

复制
相关文章

相似问题

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