7

Я запускаю следующее из командной строки:

handbrakeCLI.exe -i SourceFile.mkv -o OutputFile.mkv --stop-at 120

В соответствии с CLIGuide вы можете указать значение --stop-at в секундах (что я и хочу, прекратить кодировать 120 секунд в файл).

Моя цель для этого - быстро создать видеоклип очень высокого качества из полноценного фильма для тестирования других процессов кодирования.

Однако, когда я просматриваю свой выходной файл, это весь фильм. Есть идеи?

3 ответа3

9

Ответ можно найти в справке Handbrake:

handbrakeCLI.exe --help

Правильный синтаксис выглядит следующим образом:

--stop-at     <unit:#>  Stop encoding at a given frame, duration (in seconds),
                        or pts (on a 90kHz clock)

Пример:

handbrakeCLI.exe -i SourceFile.mkv -o OutputFile.mkv --stop-at duration:120

Это даст вам первые 120 секунд видео

4

Итак, я решил решить мою проблему с ffmpeg как таковой:

ffmpeg -i SourceFile.mkv -ss 00:00:05 -t 00:02:30 -ac 2 -sn OutputFile.mkv

Объяснение:

  • ss: seek start или "Начать кодирование в данный момент времени" (чч: мм: сс)
  • t: продолжительность (чч: мм: сс)
  • ac: аудиоканалы, так как у этого конкретного фильма была проблема с распространением аудиодорожек во время кодирования
  • sn: подавить субтитры, так как ffmpeg жаловался на дорожку субтитров

Это сработало идеально для того, что я искал.

1

По состоянию на апрель 2015 года это то, что я нашел, и мне интересно, изменится ли оно в будущем:

--start-at duration:120 --stop-at duration:60

Продолжительность start-at действительно «начинается в какой-то момент». Длительность stop-at это действительно длина (истинная продолжительность). Таким образом, слово duration означает разные вещи. Строка выше означает: начать в 00:02:00 и в течение 60 секунд. Таким образом, быстрый способ запомнить это: start-at это в точке, а stop-at на длину.

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