Запись свойств / метаданных (комментарии, заголовок и т. Д.) В видео (PHP / cURL) - PullRequest
0 голосов
/ 15 октября 2018

Мне было интересно, как я могу записать метаданные / свойства (в частности, комментарии и другую информацию) в видеофайл (в основном .mp4), используя PHP.

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.

Ответы от: запись exif-данных в php - похоже, они работают только для файлов изображений

Большое спасибо за ваше время, и я с нетерпением ждулюбые комментарии / ответы, которые я могу получить.

С уважением

Джошуа Лохнер

Ответы [ 2 ]

0 голосов
/ 15 октября 2018

exiftool вам очень поможет.См. https://owl.phy.queensu.ca/~phil/exiftool/examples.html

На большинстве дистрибутивов на основе Debian вы можете установить это с sudo apt-get install exiftool.

После этого вы можете использовать shell_exec в PHP с примером команды в ссылке выше.

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

Конечно, этоПример применим и к видеофайлам.

0 голосов
/ 15 октября 2018

Вы можете использовать ffmpeg до извлечение / добавление метаданных из / в видео, т.е.:

К Извлечение:

ffmpeg -i video.mp4 -f video_metadata.txt 

К Добавить :

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

ffmpeg документация

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...