问题描述
我正在构建一个YouTube视频修剪器,目前,它使用YouTube视频ID,从服务器下载整个视频(即使是10个小时之久),然后根据用户输入的时间使用{ {1}}。
现在的问题是,即使我们只希望下载一小段视频,也需要花费大量时间来下载整个视频,因此这是非常不切实际的。
当您向前搜索视频时,我正在考虑实现类似于HTML5视频播放器的功能。它只是跳到您要查找的部分,而无需下载跳过的部分。如何仅以缓冲区形式从服务器下载视频文件的一部分,然后从中生成已修剪的视频文件?我不知道在服务器端是否还可以,但是视频播放器在客户端可以做到这一点。
解决方法
对于任何想知道如何解决的人,我通过使用ffmpeg
下载并转换视频来解决,而不是手动下载然后使用ffmpeg
进行转换。
我以前在做什么:
ffmpeg -i ${downloadedVideo} -ss ${startTrimmingAt} -t ${trimDuration} -async 1 ${destinationPath}
我将其切换为:
ffmpeg -i ${videoURL} -ss ${startTrimmingAt} -t ${trimDuration} -async 1 ${destinationPath}
我基本上停止了手动下载视频,而是将视频URL作为输入输入ffmpeg
。