нет судьбы
С нами с 27.03.03
Сообщения: 4427
Рейтинг: 4204
|
Добавлено: 22/11/10 в 15:00 |
На сервере есть список WMV и их копий в MOV, MP4. Как ffmpegom получить текстовый файл или вывести в консоль список с соответствующимим файлами и длительностью их воспроизведения напротив имени?
|
|
|
|
С нами с 07.05.08
Сообщения: 43
Рейтинг: 86
|
Добавлено: 22/11/10 в 15:49 |
Как то так на скорую руку:
Код: | for i in `cat filename.txt`; do j=`ffmpeg -i $i 2>&1 | cat | grep Duration | awk '{print($2)}' | awk -F'.' '{print($1)}'`; echo $i $j >> video-duration.txt; done
|
|
|
|
|
С нами с 08.02.03
Сообщения: 10564
Рейтинг: 5962
|
Добавлено: 22/11/10 в 18:04 |
Ну или юзая модуль ffmpeg-php
|
|
|
|
Чингачгук, вождь красноглазых
С нами с 14.05.04
Сообщения: 4744
Рейтинг: 1824
|
Добавлено: 22/11/10 в 19:05 |
Вот из одного скрипта кусок, просто функция. global $ffmpeg_path - это понятно, что. На вход принимает путь к файлу, что возвращает - надеюсь, прозрачно.
Вторая часть марлезонского балета - для разбора заголовков mp4, там все немного не так, как в flv, надо из стрима брать информацию, а не из самого контейнера.
Код: [развернуть] |
function get_video_info($file) {
global $ffmpeg_path;
$info = array();
if (is_file($file)) {
ob_start();
passthru("$ffmpeg_path -i $file 2>&1", $res);
$buff = ob_get_contents();
ob_end_clean();
preg_match('/Duration: (.*?),/', $buff, $matches);
$duration = $matches[1];
$duration_array = explode(':', $duration);
$info['duration'] = $duration_array[0] * 3600 + $duration_array[1] * 60 + $duration_array[2];
preg_match('/width\s*:\s*(\d+)/', $buff, $matches);
$info['width'] = $matches[1];
preg_match('/height\s*:\s*(\d+)/', $buff, $matches);
$info['height'] = $matches[1];
if (!defined($info['width']) || !defined($info['height'])) {
// get from stream info
preg_match('/stream.*video.*\s(\d+)x(\d+)/i', $buff,$matches);
$info['width'] = $matches[1];
$info['height'] = $matches[2];
}
}
if ($info['duration']) {
return $info;
}
return NULL;
}
|
|
|
|
|
нет судьбы
С нами с 27.03.03
Сообщения: 4427
Рейтинг: 4204
|
Добавлено: 22/11/10 в 20:13 |
Буду проверять.
А если все файлы в одной директории? Т.е. без cat filename.txt ...
|
|
|
|
С нами с 07.05.08
Сообщения: 43
Рейтинг: 86
|
Добавлено: 23/11/10 в 09:46 |
Замени "cat filename.txt" на "ls -1 *.WMV" (или просто * если нужны все файлы в каталоге).
|
|
|
|
Текстовая реклама в форме ответа Заголовок и до четырех строчек текста Длина текста до 350 символов Купить рекламу в этом месте! |