慕容708150
我想要的是将所有这些视频显示为一个视频,这样我就不会在从视频切换到视频时出现间隙。我的第一个想法是按需预处理视频剪辑。使用类似ffmpeg剪辑之间平滑过渡的方法组合成一个 MP4 (如果对您的用例可行,则将其缓存)。然后您可以video.src={pre_processed.mp4}在客户端使用常规。Bountify 托管了一个使用 ffmpeg 和 ffprobe 对两个 mp4 文件进行淡入淡出的示例(请参阅 LayZee 的选定答案)。该函数的简化版本如下。您可以递归地使用类似的函数来自定义您自己的转换并合并目录中的文件。function smoothtransition( $videoFilePath1, $videoFilePath2, $transitionDurationSeconds, $outputFilePath, $qualityFormatSettings){ $firstVideoDurationCommand = implode(" ", ["...ffprobe_command..."]); $firstVideoFileDuration = (float)shell_exec($firstVideoDurationCommand); $firstVideoFileFadeStart = $firstVideoFileDuration - (float)$transitionDurationSeconds; $crossfadeCommand = implode(" ", ["...ffmpeg_command..."]); exec($crossfadeCommand, $output, $returnCode); return $returnCode === 1 ? $outputFilePath : $returnCode;}// Usage:smoothtransition( "{PATH_TO_YOUR_FOLDER}/first_video.mp4", "{PATH_TO_YOUR_FOLDER}/second_video.mp4", 10, "{PATH_TO_YOUR_FOLDER}/output_video.mp4", null);