php – ffmpeg修复视频方向
发布时间:2020-12-13 17:46:49 所属栏目:PHP教程 来源:网络整理
导读:视频可以包含有关相机方向的元信息.例如,如果您转动设备,iPhone和其他手机会设置此标志.问题是当一些玩家阅读此信息并相应地旋转视频时,其他玩家则不会. 要解决此问题,必须旋转视频,并且需要正确设置元信息. ffmpeg是否为此提供了修复,或者我必须采取哪些措
视频可以包含有关相机方向的元信息.例如,如果您转动设备,iPhone和其他手机会设置此标志.问题是当一些玩家阅读此信息并相应地旋转视频时,其他玩家则不会.
要解决此问题,必须旋转视频,并且需要正确设置元信息. ffmpeg是否为此提供了修复,或者我必须采取哪些措施(Read rotation,旋转,设置元数据) 解决方法
我确实走得很厉害:
$ffmpeg == "path/to/ffmpeg"; $output_file_full = "file/after/normal/conversion"; // get rotation of the video ob_start(); passthru($ffmpeg . " -i " . $output_file_full . " 2>&1"); $duration_output = ob_get_contents(); ob_end_clean(); // rotate? if (preg_match('/rotate *: (.*?)n/',$duration_output,$matches)) { $rotation = $matches[1]; if ($rotation == "90") { echo shell_exec($ffmpeg . ' -i ' . $output_file_full . ' -metadata:s:v:0 rotate=0 -vf "transpose=1" ' . $output_file_full . ".rot.mp4 2>&1") . "n"; echo shell_exec("mv $output_file_full.rot.mp4 $output_file_full") . "n"; } else if ($rotation == "180") { echo shell_exec($ffmpeg . ' -i ' . $output_file_full . ' -metadata:s:v:0 rotate=0 -vf "transpose=1" ' . $output_file_full . ".rot2.mp4 2>&1") . "n"; echo shell_exec($ffmpeg . ' -i ' . $output_file_full . '.rot2.mp4 -metadata:s:v:0 rotate=0 -vf "transpose=1" ' . $output_file_full . ".rot.mp4 2>&1") . "n"; echo shell_exec("mv $output_file_full.rot.mp4 $output_file_full") . "n"; } else if ($rotation == "270") { echo shell_exec($ffmpeg . ' -i ' . $output_file_full . ' -metadata:s:v:0 rotate=0 -vf "transpose=2" ' . $output_file_full . ".rot.mp4 2>&1") . "n"; echo shell_exec("mv $output_file_full.rot.mp4 $output_file_full") . "n"; } } 我使用了一些丑陋的临时文件.对于那个很抱歉. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |