在PHP应用程序的缩略图FFMPEG不能正常转动(FFMPEG thumbnail in php a

2019-10-24 09:59发布

我曾经在一个PHP应用程序中创建一个FFMPEG缩略图,并试图如果视频是自下而上旋转缩略图(反转),但旋转图像无法正常工作。 下面的是用于图像旋转的代码

$video = $storeHere.$mediaFile;
                                $tImage = $upload_output['uploaded_file'].'.jpg';
                                $thumbnail = $storeHere.$tImage;
                                // shell command [highly simplified, please don't run it plain on your script!]
                                 shell_exec("ffmpeg -i $video -deinterlace -an -ss 1 -t 00:00:01 -r 1 -y -vcodec mjpeg -f mjpeg -s 250x250  $thumbnail 2>&1");
                                 /* image rotate fix */
                                    $source = imagecreatefromjpeg($thumbnail);
                                    $degrees = 270;
                                    $rotate = imagerotate($source, $degrees, 0);
                                    imagejpeg($rotate,$thumbnail);
                                 /* rotate fix ends */

Answer 1:

上述解决方案仍可能有视频的问题在每次生成缩略图时播放。
我想最简单的方法是使用本地播放器在您的手机播放视频
你可以做的是尽量使用本地播放器API来加载()的内容,然后播放()它- longtailvideo.com/support/jw-player/31800/loading-new-playlists ,但是,需要有一个播放器实例目前已经在页面上第一这个工作。



Answer 2:

HI我已经找到了这个问题的解决,

 shell_exec("ffmpeg -i $video -deinterlace -an -ss 1 -t 00:00:01 -r 1 -y -vcodec mjpeg -f mjpeg -s 250x250  $thumbnail 2>&1");
                                 /* image rotate fix *///vignesh
                                  $exif = exif_read_data($thumbnail);
                                   if (!empty($exif['Orientation'])) {
                                    $source = imagecreatefromjpeg($thumbnail);
                                    switch ($exif['Orientation']) {
                                        case 3:
                                            $degrees = 180;
                                            break;
                                        case 6:
                                            $degrees = -90;
                                            break;
                                        case 8:
                                            $degrees = 90;
                                            break;

                                    }
                                    $rotate = imagerotate($source, $degrees, 0);
                                    imagejpeg($rotate,$thumbnail);


文章来源: FFMPEG thumbnail in php application's is not rotated properly