将属性/元数据(评论,标题等)写入视频(PHP / cURL)

时间:2018-10-15 12:11:09

标签: php file video metadata

我想知道如何使用PHP将元数据/属性(特别是注释和其他信息)写入视频文件(主要是.mp4)。

Properties/metadata of a video file - Windows

这是我用来将远程文件($ sourceURL)下载到本地目标($ destinationURL)的功能。我可以使用$ destinationURL重命名该文件(只需将其以/video.mp4结尾)。我目前正在使用cURL,但是如果只能通过fopen()/ fwrite()之类的方法来完成,那么我愿意接受建议:)

function downloadFile( $sourceURL, $destinationURL ) {
    $options = array(
        CURLOPT_FILE => is_resource( $destinationURL ) ? $destinationURL : fopen( $destinationURL, 'w' ),
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_URL => $sourceURL,
        CURLOPT_FAILONERROR => true,
    );

    $ch = curl_init();
    curl_setopt_array( $ch, $options );
    $return = curl_exec( $ch );

    if ( $return === false ) {
        return curl_error( $ch );
    } else {
        return true;
    }
}

我尝试过的事情:

  1. getID3():http://getid3.sourceforge.net/也许我丢失了一些东西,但是当我尝试写入mp4文件时,它给了我这个错误:

Error message from getID3 - 1

将标签格式更改为“ id3v1”也不起作用。

Error message from getID3 - 2

如果我没记错的话,标记格式的“ id3v2.3”和“ id3v1”仅适用于.mp3文件。

  1. 答案来自:writing exif data in php-这些似乎仅适用于图像文件

非常感谢您抽出宝贵的时间,我期待收到我的任何评论/答案。

亲切问候

Joshua Lochner

2 个答案:

答案 0 :(得分:3)

您可以使用ffmpeg从视频中提取 / 添加元数据,即:

提取

ffmpeg -i video.mp4 -f video_metadata.txt 

添加

ffmpeg -i video.mp4 -metadata title="my title" video_metadata.mp4

ffmpeg documentation

答案 1 :(得分:3)

exiftool将为您提供很多帮助。参见https://owl.phy.queensu.ca/~phil/exiftool/examples.html

在大多数基于Debian的发行版中,您可以使用sudo apt-get install exiftool安装它。

此后,可以在PHP中将shell_exec与上面的链接中的示例命令一起使用。

 $output = shell_exec('exiftool yourfile.mp4');

exiftool可以进行读写操作。

从我链接的网站复制的小示例:

  

4)编写多个标签

     

exiftool -artist =“ Phil Harvey” -copyright =“ 2011 Phil Harvey” a.jpg

所以这意味着:

$command = 'exiftool -artist="Phil Harvey" -copyright="2011 Phil Harvey" a.jpg';
$output = shell_exec($command);

当然,此示例也适用于视频文件。