

MYSQlから取得した動画のバイナリデーターを  
`<Video>`で再生したいのですが、可能ですか？


CC BY-SA 3.0
2017-04-27T11:27:23.377
34325
2017-04-28T11:38:15.900
2017-04-27T13:11:27.987
5288
22677
question
javascript php html
<video>タグでバイナリデータ表示


CGIをvideo系のMIMEタイプでバイナリをそのまま出すものと、HTMLを吐くものに分けて、  
前者のURLを後者がvideoタグのsrc属性に指定して返せば良いでしょう。


CC BY-SA 3.0
2017-04-27T13:50:05.967
34328
2017-04-27T13:50:05.967
5721
34325
answer


こんな感じでいかがでしょうか。

[code]

    function display_video(){
        $video = 'play.mp4';
        try {
            $db = new PDO($dbconnect, $db_user, $db_password);
        } catch (PDOException $e) {
            echo 'Connection failed: ' . $e->getMessage();
        }
    
        if (($result = $db->query('SELECT video FROM videos WHERE `name` = "'.$video.'"')) !== false)
        {
            echo '<div content="Content-Type: video/mp4">
                      <video width="600" height="480" controls="controls" poster="image" preload="metadata">
                      <source src="data:video/mp4;base64,'.base64_encode($result->fetch(PDO::FETCH_COLUMN)).'"/>;
                  </video>
              </div>';
        }
        else 
        {
            // 失敗した際の処理
        }
    }
    
[/code]


CC BY-SA 3.0
2017-04-28T01:13:05.873
34340
2017-04-28T01:13:05.873
22763
34325
answer


可能と思います。  
色々、サーバの制限など考慮しないといけないと思いますが、サーバ側がphpなら こんなかんじでしょうか。

[code]

    <video><source src="hoge.php" type="video/mp4"></source></video>
    
[/code]

hoge.phpでの処理はこんなかんじでしょうか

[code]

    $sql = "SELECT * FROM `data`";
    if ($result = mysqli_query($link, $sql)) {
        $row = mysqli_fetch_array($result, MYSQLI_NUM);
    //video/mp4
        header("Content-type: video/mp4");
        echo row[2];
    }
    
[/code]


CC BY-SA 3.0
2017-04-28T05:18:24.683
34344
2017-04-28T11:38:15.900
2017-04-28T11:38:15.900
49
22793
34325
answer