首页 > 解决方案 > 使用 libav* 将每帧的时间戳编码和解码到 mp4

问题描述

我正在编写一个用于录制和播放视频的程序,以及另一个连接到我们销售的硬件的程序。这个其他程序从硬件收集数据,其中包含以固定采样率的“时间戳”计数器。

我正在寻找一种将这些时间戳(原始或转换为 unix)编码到输出的 mp4 文件中的方法。主要原因是视频流可能仅在硬件采集几分钟后才开始保存

记录:

                timestamp
Main program --------------->  Video program
  |                                 |
  |                                 |
  v                                 v
Save hardware data               Save frame data
  and timestamp                    and timestamp

  |                                 |
  |                                 |
  v                                 v
Custom data format                .mp4 file

后处理分析:

for i in range(0,datalen):
    hardwareData, timestamp = readHardwareFile()
    frame, timestamp = readMP4()

    myData[timestamp].hardware = hardwareData
    mydata[timestamp].video = frame

analyze(myData)

目标是当我想在 VLC 或 OpenCV 中播放时,我可以访问每一帧的时间戳。

我目前将它保存为带有时间戳和帧#的单独文本文件,但我想知道是否有更标准化的方法来执行此操作。

标签: pythonffmpegvideo-capturelibav

解决方案


推荐阅读