将 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;
}
}
我试过的:
- getID3(): http://getid3.sourceforge.net/ 也许我遗漏了什么,但是当我尝试写入 mp4 文件时,它给了我这个错误:
将标记格式更改为 "id3v1" 也不起作用。
如果我没记错的话,标签格式的 "id3v2.3" 和 "id3v1" 只适用于 .mp3 文件。
- 答案来自: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);
当然这个例子也适用于视频文件。
我想知道如何使用 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;
}
}
我试过的:
- getID3(): http://getid3.sourceforge.net/ 也许我遗漏了什么,但是当我尝试写入 mp4 文件时,它给了我这个错误:
将标记格式更改为 "id3v1" 也不起作用。
如果我没记错的话,标签格式的 "id3v2.3" 和 "id3v1" 只适用于 .mp3 文件。
- 答案来自: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);
当然这个例子也适用于视频文件。