我想模仿bing视频预览功能,使用缩略图预览,然后onMouseOver,加载并播放视频文件。我计划使用VideoJS (html5 + flash)进行视频播放。我需要使用ffmpeg来生成这些视频文件。
我如何创建一个mp4预览视频只有,其中包含15的每隔一分钟的完整剪辑,并缩小分辨率到一个固定的宽度(保持长宽比,最好与缩放裁剪)使用php + ffmpeg命令行?
我假设它可以沿着切割15个剪辑的路线以某种方式完成,然后组合较小的剪辑,并重新编码为最终重新缩放的输出。
*Edit:使用ffmpeg是设计要求。抽出15个剪辑,应该是相当容易的,但结合他们似乎有点复杂的ffmpeg。我不想骑自行车缩略图,我想要一个视频预览,其中包含一些15剪辑。如。以秒为单位的运行时间:100-101秒和200-201秒组合在一起。我要求如何以有效的方式做到这一点的命令行示例。
在Windows(或wine)中这样做的一种方法是使用Avisynth脚本。这将允许您在一个步骤中完成所有所需的转换。自从我使用Avisynth以来已经有一段时间了,但是一个非常简单的脚本可能看起来像:
DirectShowSource("C:filetoencode.avi", audio=false) # Or another source filter
SelectRangeEvery(1440, 24) # outputs 24 frames every 1440 frames
BilinearResize(320,240) # resize to your desired resolution
Crop(...) # crop to reach desired aspect ratio
这可以扩展到支持各种帧率和长宽比,而不是硬编码一切。生成的.avs文件然后可以用作ffmpeg的输入文件,前提是它已经使用——enable-avisynth进行了编译。
我有一个方法,我认为这将工作…
使用ffmpeg,你可以在特定的时间间隔获得视频的缩略图。
因此,我将在2秒的间隔内使用大约5到10个缩略图,并将它们存储在我的服务器上,并使用唯一的名称标识视频。
所以当我把鼠标放在上面的时候,我调用这个函数,这个函数会依次加载这些图像(这让用户觉得视频是快速前进的…)
但是在这种格式中,当我们将鼠标放在…上时,我们不能播放声音。
我不知道这是否好,但我知道这将工作…
更新:
我认为这将是更好的创建一个视频使用ffmpeg使用提取的图像和播放他们,而我们的鼠标。这将比加载一系列图像要快得多。Ffmpeg可用于从图像列表中创建新视频。
我现在设法做到这一点,通过拔出15个剪辑,并将它们转换为mpeg。然后将这些mpeg文件合并到一个文件中。然后将mpeg文件转换为mp4