Php 如何分割OGX(视频)文件?
我正在尝试创建一个PHP脚本,该脚本将基于seek位置(作为参数传输到脚本)交付给定的.ogx文件。目的是制作一个具有服务器端搜索功能的HTML5视频播放器 我稍微研究了一下容器格式,并编写了.php脚本,开始从seek位置之前出现的“OggS”字符串的第一个实例(以字节为单位)传递数据 问题是,即使我的新.ogx文件以“OggS”字符串开头,但在HTML5、VLC或任何其他播放器中,只要搜索位置不是0,它就完全无法播放 如果我将搜索位置设置为0,脚本将提供整个文件,并且可以播放Php 如何分割OGX(视频)文件?,php,ogg,ogg-theora,Php,Ogg,Ogg Theora,我正在尝试创建一个PHP脚本,该脚本将基于seek位置(作为参数传输到脚本)交付给定的.ogx文件。目的是制作一个具有服务器端搜索功能的HTML5视频播放器 我稍微研究了一下容器格式,并编写了.php脚本,开始从seek位置之前出现的“OggS”字符串的第一个实例(以字节为单位)传递数据 问题是,即使我的新.ogx文件以“OggS”字符串开头,但在HTML5、VLC或任何其他播放器中,只要搜索位置不是0,它就完全无法播放 如果我将搜索位置设置为0,脚本将提供整个文件,并且可以播放 那么,如何在生
那么,如何在生成有效比特流的同时修剪.ogx文件的开头呢?您应该看看FFMpeg,它是一个库,可以让您以不同的方式处理视频和音频文件 从他们的网站 FFmpeg是一个完整的、跨平台的 记录、转换和流式处理的解决方案 音频和视频。它包括 libavcodec-领先的音频/视频 编解码器库
您应该看看FFMpeg,它是一个库,可以让您以不同的方式处理视频和音频文件 从他们的网站 FFmpeg是一个完整的、跨平台的 记录、转换和流式处理的解决方案 音频和视频。它包括 libavcodec-领先的音频/视频 编解码器库
首先,我应该指出,Ogg容器中视频的常见扩展是
.ogv
。您正在使用的.ogx
是为Ogg容器中的可执行代码保留的,但目前没有可以携带此类代码的流(有人试图创建Flash的替代品,但它没有成功)
其次,theora的第一个框架保存了关于流的所有元数据。玩家不能玩它的原因就是因为这个事实。如果您打算允许这样的搜索选项,您将需要重新发送第一帧(您甚至可能不需要解码它,只需重新发送它)
因此,您需要的是:
由于您的文件可能包含Vorbis stream和Theora,因此您可能也希望发送其第一个数据包。首先,我应该指出,Ogg容器中视频的通用扩展名是
.ogv
。您正在使用的.ogx
是为Ogg容器中的可执行代码保留的,但目前没有可以携带此类代码的流(有人试图创建Flash的替代品,但它没有成功)
其次,theora的第一个框架保存了关于流的所有元数据。玩家不能玩它的原因就是因为这个事实。如果您打算允许这样的搜索选项,您将需要重新发送第一帧(您甚至可能不需要解码它,只需重新发送它)
因此,您需要的是: