【问题标题】:Giving Warnings while segmenting video using FFMPEG使用 FFMPEG 分割视频时发出警告
【发布时间】:2019-02-13 03:39:42
【问题描述】:

我有一个摄像头流,它提供 10 fps 的视频,分辨率为 800x600,编码为 h264。我喜欢将视频分成 10 分钟的片段,并以系统时间作为名称保存。
我使用以下代码来执行此操作。

ffmpeg -i $URL -c copy -map 0 -f segment -strftime 1 -segment_atclocktime 1 -reset_timestamps 1 -segment_time 600 -segment_format mp4 %Y%m%d_%H%M%S.mp4

但是当我运行代码时,它给了我以下警告。

[segment @ 0x55968f393e80] 未在流 0 的数据包中设置时间戳。这已被弃用,将来将停止工作。修复您的代码以正确设置时间戳

[segment @ 0x55968f393e80] 输出流 0:0 中的非单调 DTS;上一个:0,当前:0;更改为 1。这可能会导致输出文件中的时间戳不正确。

而且它保存的视频长度不完全是 10 分钟。

如何修复这些警告并保存长度恰好等于 10 分钟的视频。

谢谢!!

【问题讨论】:

  • 这个问题似乎离题了,因为它不在帮助中心所述的讨论范围内。
  • @Will 我以前在 stackoverflow 中看到过类似类型的问题。可能是您先尝试关闭它们..
  • 我在这里梳理了超过 600 万个问题,已经投了大约 87.4 万票。这仍然是题外话。
  • @Will Yeah.. 我刚刚阅读了主题FFMPEG 的信息,并意识到这个问题离题了。很抱歉粗鲁:)
  • NP,干杯。

标签: ffmpeg mp4 h.264 libavcodec


【解决方案1】:

忽略时间戳警告。 H264 流没有时间戳,因此 ffmpeg 必须生成它们。

由于关键帧的放置,如果不重新编码,您将无法获得准确的片段长度。

【讨论】:

  • 所以你说这里没有什么我需要担心的......?
  • 一般情况下不会。但是一些 h264 流具有复杂的 b 帧序列,对于那些,时间戳生成是错误的。在这种情况下,您应该先使用 mp4box 生成 mp4
猜你喜欢
  • 2016-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-16
  • 2018-11-28
  • 2011-08-04
  • 2023-02-02
  • 2015-10-09
相关资源
最近更新 更多