Воспроизвести видео, которое хранится в MariaDB как BLOB-файл - PullRequest
0 голосов
/ 27 декабря 2018

С помощью прилагаемого скрипта я пытаюсь воспроизвести видео, которое хранится в базе данных в виде BLOB-файла.Переменная $row['video'] содержит видео в формате BLOB-Data.Все работает очень хорошо, пока я не попытаюсь воспроизвести видео в другом формате данных, чем mp4.Я знаю, что видео-тег в HTML5 не допускает * .avi и т. Д., Поэтому я также попробовал <embed> и <object>.Оба также работают только для mp4.У вас есть идеи, что я делаю не так?Перейдите к «README» ниже, чтобы найти местоположение в коде, где возникает проблема.

Это задание для школы, поэтому необходимо работать с форматом BLOB-данных.

Спасибозаранее за любую помощь.

  <?php
    $id = mysqli_real_escape_string($conn, $_GET['id']);    

    if($id)
    {
        $sql = "SELECT * FROM video WHERE id = '$id'";
        $result = $conn->query($sql);

        if ($result) 
        {
            $row = $result->fetch_assoc(); 

            if(checkFileFormat($row["videoformat"]) == "image")
            {
                //display photo
                echo '<img width="25%" height="25%" src="data:image/' . $row["videoformat"] . ';base64,'.base64_encode($row['video']).'"/>
                      <br>';
                echo $row["title"] . "<br><br>";

                echo '
                    <object width="368" height="119" data="data:' . checkFileFormat($row["videoformat"]) . '/' . $row["videoformat"] . ';base64,' . base64_encode($row['video']).'"></object>
                ';

            }
            else if(checkFileFormat($row["videoformat"]) == "video")
            {
                //display video        
/* 
************* README ************* 
base64 encode + video tag --> works for mp4-videos; I don't have any clue how to play for example avi-videos. I already tried via <object> and  <embed> both also does not work for me.
************* END README ************* 
*/
        //base64 encode + video tag *** does work for mp4
        echo '
            video: <br>
            <video width="320" height="240" controls>
                <source src="data:video/' . $row["videoformat"] . ';base64,' . base64_encode($row['video']).'" type="video/' . $row["videoformat"] .'">
            </video>
            <br><br>';

        //embed for avi file *** does not work
        echo '
            embed for avi: <br>
            <embed type="application/x-mplayer2" src="data:video/' . $row["videoformat"] . ';base64,' . base64_encode($row['video']).'">
            </embed>
            <br><br>
        ';

        //object for avi file *** does not work
        echo '
            object for avi: <br>
            <object type="video/x-msvideo" data="data:video/' . $row["videoformat"] . ';base64,' . base64_encode($row['video']).'">
                <param name="src" value="data:video/' . $row["videoformat"] . ';base64,' . base64_encode($row['video']).'">
                <param name="autoStart" value="0">
            </object>
            <br><br>
        ';

        //object for mp4 file *** does work
        echo '
            object for mp4: <br>
            <object type="video/mp4" data="data:video/' . $row["videoformat"] . ';base64,' . base64_encode($row['video']).'">
            </object>
            <br><br>
        ';

        //embed for mp4 file *** does work
        echo '
            embed for mp4: <br>
            <embed type="video/mp4" src="data:video/' . $row["videoformat"] . ';base64,' . base64_encode($row['video']).'">
            </embed>
            <br><br>
        ';


                echo "Title: " . $row["title"] . " | Duration: " . $row["duration"] . " | Format: " . $row["videoformat"];
            }
            else
            {
                echo "Error: file format not supported!";
            }
        }
        else    
        {
            trigger_error('Invalid query: ' . $conn->error);
        }
    }
    else
        echo "Error: missing id";

    ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...