我想知道如何使用 PHP 将元数据/属性(具体注释和其他信息)写入视频文件(主要是 .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;
}
}
我尝试过的:
将标签格式更改为“id3v1”也不起作用。
如果我没记错的话,标签格式的“id3v2.3”和“id3v1”仅适用于.mp3文件。
非常感谢您的宝贵时间,我期待收到任何评论/答案。
亲切的问候
约书亚·洛克纳
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="菲尔·哈维" -copyright="2011 菲尔·哈维" a.jpg
所以这意味着:
$command = 'exiftool -artist="Phil Harvey" -copyright="2011 Phil Harvey" a.jpg';
$output = shell_exec($command);
当然这个例子也适用于视频文件。