【问题标题】:Time-passage callback when rendering recorded and live/streaming audio/video渲染录制和直播/流式音频/视频时的时间传递回调
【发布时间】:2009-10-09 04:41:24
【问题描述】:

伙计们...!我是音频/视频格式/编解码器、他们的播放器、他们公开的 API 等领域的完全新手。非常感谢您的耐心以及对我的这个问题的建议。

问题:几乎所有的音频/视频播放器都以 hh:mm:ss 格式显示时间流逝信息。我希望能够注册我的回调——它可以是 Java/applet 回调或 Javascript 回调——它在每个“时间滴答”时被调用并运行我的自定义代码。也许这不是时间滴答,而是编解码器术语中的“帧通道”事件。也许,这些编解码器/播放器甚至允许您指定回调频率(每隔这么多帧或秒)...

其次,我希望能够为录制的内容以及直播/流媒体内容执行此操作。

我应该关注哪些开源软件、工具、API、“概念”等?我希望能够处理最流行的格式,例如 flv、avi、mp3、mpeg。理想情况下,我更愿意用 Java / Javascript 处理一些东西。

不知道从哪里开始。一个示例、一个代码 sn-p,甚至只是我需要遵循的过程/步骤都会有很大的帮助。再次感谢。

【问题讨论】:

    标签: video audio events callback frame


    【解决方案1】:

    这取决于你在什么样的环境中运行以及你想在你的回调中做什么样的事情。一些多媒体框架可以添加视频、字幕或音频过滤器,这些过滤器可以访问流中的各种数据。一个这样的开源框架是GStreamer。另一种是基于 Java 的Processing 语言,尽管它不能直接解码流行的视频格式。我认为VLC,当然是视频格式的开源之王,也有一个可能满足您需求的 API。

    新的HTML5 video element 定义了一个timeupdate 事件,该事件将在视频播放时每15 到250 毫秒触发一次。可以访问currentTime 属性以获取当前播放位置。也可以manipulate the HTML5 video directly in JavaScript code

    如果您只想在视频播放时进行时间回调并且不需要过滤数据,那么您可以使用您的语言的标准计时器工具,例如setTimeout() 在 JavaScript 中,以视频的帧速率请求计时器回调。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-06
      • 2019-09-08
      相关资源
      最近更新 更多