LINUX.ORG.RU

Mplayer (avi to jpeg)


0

0

Пользуюсь такой коммандой.
mplayer -vo jpeg -ss 28 -frames 2 -nosound move.avi
Работает, только есть несколько вопросов:

1. Ниужели никак нельзя задать вручную имя будующей картинки?

2. Почему для того что бы сделась 1 картинка надо писать "-frames 2", что бы 2 - "-frames 3"

3. Не получилось вместо опции "-ss" использовать опцию "-sb". У кого нить с ней работает? Просто эту команду предстоит вызывать из скрипта и гораздо проще будет узнать размер видео файла нежели его продолжительность в секундах.

$size = (stat($filename))[7];
for (1..10) {
$sb = int(rand($size));
`mplayer -vo jpeg -sb $sb -frames 2 -nosound move.avi`;
}

вот так я себе это представляю.


>$sb = int(rand($size));

Что и требовалось доказать. Mplayer используют только тогда когда результат не интересует. Хы

anonymous
()

В более ранней ветке я отписал про transcode (точнее, про tcextract).

Obidos ★★★★★
()

Надо еще учесть что он будет вырезать не точно ту картинку, которая тебе нужна, а начиная с ближайшего ключевого кадра. Конечно, если у тебя этот фильм в mpeg4.

Vidopliassov
()
Ответ на: комментарий от Vidopliassov

Да мне просто надо тупо и мрачно случайным образом пару десятков скриншётов понаделать.

Mag
() автор топика
Ответ на: комментарий от Mag

Народ! Проверьте кто-нить делаютсяли у вас скрины при использовании опции -sb
Например так:
mplayer -vo jpeg -sb 1024 -frames 1 -nosound -nocolorkey Shrek2.avi

И ещё проблема. В некоторых фильмах когда говаришь -frames 1 делается 2 скриншёта, а в некоторых ни одного :) У меня ещё не разу не было что бы как надо 1 сделал.

ЗЫ А можно про transcode поподробней может с его помощью мою проблему режить можно?

Mag
() автор топика
Ответ на: комментарий от Obidos

extract and print out only this frame interval (video) or bytes (audio)

video или audio, а мне изображение надо. Или я чего-то не понял?

Mag
() автор топика
Ответ на: комментарий от Mag

Укажите ему стартовый и стоповый фрейм один и тот же. А что тащить (видео или аудио) -- в man'е описано.

Obidos ★★★★★
()
Ответ на: комментарий от Obidos

Да про опцию -С я понял. Читаю маны - http://zebra.fh-weingarten.de/~transcode/man1/tcextract.1.html

read multimedia file ... and print to standard output

Я не понял как потом из того что вывалиться в stdout jpg-эшку сделать. и ещё в опции -x я вообще jpeg не увидел.

Mag
() автор топика
Ответ на: комментарий от Mag

tcextract -i test.avi -t avi -C 1-2 -x mpeg2 > mpeg2.mpg

Говорю так. Поидее должен получиться однокадровый mpeg2.mpg получается же почти точный аналаг test.avi :( одним кадром и не пахнит.

Mag
() автор топика
Ответ на: комментарий от Mag

Хм... Согласно man'у,

> This option is only supported if the source contains proper information to perform a selective extraction.

А для mpeg (mpeg1/mpeg2/mpeg4/divx) это не так (фреймы не независимые). Судя по всему, отсюда и у отсутствия позиционирования по фреймам в mencoder'е ноги растут.

Obidos ★★★★★
()
Ответ на: комментарий от Mag

Поступай как математик

Извлеки ВСЕ фреймы, а затем сотри не нужные:)

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.