将 properties/metadata(评论、标题等)写入视频 (PHP/cURL)

Write properties/metadata (comments, title, etc.) to a video (PHP/cURL)

我想知道如何使用 PHP.

将 metadata/properties(具体评论和其他信息)写入视频文件(主要是 .mp4)

这是我用来将远程文件($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 文件时,它给了我这个错误:

将标记格式更改为 "id3v1" 也不起作用。

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

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

非常感谢您的宝贵时间,我期待收到任何 comments/answers。

亲切的问候

约书亚·洛克纳

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

提取

ffmpeg -i video.mp4 -f video_metadata.txt 

添加

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

ffmpeg documentation

exiftool 会对你有很大帮助。参见 https://owl.phy.queensu.ca/~phil/exiftool/examples.html

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

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

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

可以使用 exiftool 进行读写,请参阅示例。

从我link编辑的网站复制的小例子:

4) Write multiple tags

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);

当然这个例子也适用于视频文件。