FFmpeg能否设置输出帧的PTS值?

5

能否让ffmpeg设置帧的输出pts值?我的目的是重新编码一个源文件,但保持原始pts值。

我尝试了各种过滤器,但输出总是新的pts值。

ffmpeg -i source_sample.ts -filter_complex "[0:v] setpts=PTS" -c:v libx264 -b:v 1000k -preset fast -crf 22  -f mpegts /tmp/sample.ts

上述命令只影响输入流而不是输出。欢迎任何建议...谢谢

1
可能是 http://ffmpeg.org/ffmpeg-filters.html#setpts 或者 http://stackoverflow.com/questions/18253340/keep-timecode-in-ffmpeg - rogerdpack
@rogerpack 我已经尝试了 "setpts",但似乎只影响输入的处理方式。你的第二个建议似乎只适用于 'copy' 指令。 - Andy Hardwick
真的,也许可以问问ffmpeg-user邮件列表和/或superuser。 我猜如果您重新编码,则输出TS由编码器设置,不知道它们中是否有这个特定选项... - rogerdpack
1个回答

4

只有在您还指示ffmpeg将输入时间戳复制或转换为输出时间戳时,setpts才起作用。尝试添加 -copyts -start_at_zero 或 -vsync passthrough


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接