I'm trying to create PHP video upload script which convert MOV and many other video files extensions to .mp4 extension. I successfully upload the file to the folder and create a record to the database. But when I try to display that video file in HTML5 video tag is not working.
Here is my PHP code:
  <?php include "includes/dbh.inc.php"; ?>
 <?php
if (isset($_SESSION['user_name'])){
    
    if (isset($_POST['submit'])) {
        $author = $_SESSION['user_name'];
        $post_photo = time() . '-' . $_FILES["post_photo"]["name"];
        if (file_exists($_FILES['post_photo']['tmp_name']) && is_uploaded_file($_FILES['post_photo']['tmp_name'])) {
            $targetvid     = md5(time());
            $target_dirvid = "post_video/";
            $target_filevid = $targetvid . basename($post_photo);
            $uploadOk = 0;
            $videotype = pathinfo($target_filevid, PATHINFO_EXTENSION);
    //these are the valid video formats that can be uploaded and
                  //they will all be converted to .mp4
            $video_formats = [
                "mpeg",
                "mp4",
                "mov",
                "wav",
                "avi",
                "dat",
                "flv",
                "MOV",
                "3gp"
            ];
            foreach ($video_formats as $valid_video_format) {
      //You can use in_array and it is better
                if (preg_match("/$videotype/", $valid_video_format)) {
                    $target_filevid = $targetvid . basename($_FILES["post_photo"] . ".mp4");
                    $uploadOk       = 1;
                    break;
                } 
            }
            // Check if $uploadOk is set to 0 by an error
            if ($uploadOk == 0) {
                echo $message;
                // if everything is ok, try to upload file
            } 
                if (move_uploaded_file($_FILES["post_photo"]["tmp_name"], $target_dirvid . $target_filevid)) {
                    $sql = "INSERT INTO video_posts (author, video_post) VALUES ('$author', '$target_filevid')" ;
                    $result = mysqli_query($conn, $sql);
                    
                   if ($result) {
                    echo "Success";
                   } else {
                    echo "Failed" . mysqli_error($conn);
                   }
                }
            }
        
    }
}
?>
And this is my HTML video tag P.S. I'm using foreach loop to display video for every user.
<video id="myVideo" controls  playsinline>
  <source src="../post_video/<?php echo $user_post['video_post']; ?>" type="video/mp4">
  <source src="../post_video/<?php echo $user_post['video_post']; ?>" type="video/ogg">
</video>
On database record the file name is absolutely the same as in the upload folder with MP4 extension but is still not showing into HTML page.
 
     
     
    