2

Какие приложения командной строки я могу использовать на OS X, чтобы получить время выполнения фильма? Я хотел бы иметь возможность сделать что-то вроде этого:

$ running_time matrix.avi
136 min

2 ответа2

3

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

Нажмите еще немного, чтобы обработать эту строку в желаемый вывод "xxx min". То, что вам нужно для этого, зависит от того, какой инструмент вы будете использовать. (См. Пример mplayer для предложения.) Получив это, вы можете создать сценарий оболочки или псевдоним для запуска этой команды с running_time .

FFMpeg:

ffmpeg -i foo.avi
ffmpeg -i foo.avi 2>&1 | grep Duration

Mplayer/Mencoder (ID_LENGTH в секундах):

mplayer -vo null -ao null -identify -frames 0 foo.avi
mplayer -vo null -ao null -identify -frames 0 foo.avi | grep ID_LENGTH

# ugly, but outputs "xx mins"
mplayer -identify -ao null -vo null -frames 0 foo.avi | grep ^ID_LENGTH= | cut -d = -f 2 | perl -lne 'print sprintf("%d mins", $_/60)'

Транскод (с помощью инструмента tcprobe ):

tcprobe -i foo.avi
tcprobe -i foo.avi | grep duration
0

Возможно, вы захотите взглянуть на следующие инструменты:

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .