Разделить MPEG-видео из командной строки?

У меня есть самодельный DVD, который я фактически пытаюсь вставить главы и переставить – оригинальный автор сжег его как одну длинную главу, и я хотел бы разорвать его на более мелкие части и перекодировать его на новый DVD. Я разорвал DVD с помощью следующей команды:

  Mplayer dvd: // -dvd-device / dev / sr2 -dumpstream -dumpfile raw.vob 

Я запускаю Gentoo Linux с mplayer версии 1.0-rc2_p20090731 (последняя доступна в Portage).

У меня есть список раз, когда главы должны охватывать (например, 30: 11-33: 25), поэтому моя первая мысль заключалась в том, чтобы разорвать весь DVD и использовать mpgtx для вырезания определенных фрагментов файла. Моя проблема заключается в том, что при запуске mpgtx -i в файле сообщается о нескольких моментах:

  Временные марки подскочили с 59.753789 до 0,001622 в позиции 1d29800
 Временные марки подскочили с 204963823030450.343750 до 31.165900 в позиции 2d4f800
 Временные метки подскочили с 60.077878 до 0.001622 в позиции 43cc000 
 Временные отметки подскочили с 60.024233 до 0.001622 в позиции 65c5000
 Временные метки подскочили с 204963823068631.718750 до 52.549244 в позиции 7fd1000 

Я попытался исправить индексы, используя:

  Mencoder raw.vob -oac copy -ovc copy -forceidx -o fixed.vob -of mpeg 

Но mpgtx все равно сообщит о проблемах с меткой времени. Мой ближайший вопрос: есть ли способ взять разорванный фильм, который у меня есть, и исправить его временные метки, чтобы я мог разрезать его на mpgtx? Если я смогу избавиться от этой проблемы, построение остальной части DVD будет плавным.

Если невозможно зафиксировать отметки времени в этом файле: есть ли лучший способ скопировать небольшие фрагменты DVD в отдельные файлы для последующей перекомпиляции? Мне очень хотелось бы, чтобы это было сделано в Linux, и было бы еще лучше, если бы я мог каким-то образом его скриптировать (фид в списке начальных и конечных позиций, времени начала и продолжительности, а также выйти из серии разорванных файлы). Если потребуется, у меня также есть машина Mac OS X, но нет Windows.

Изменить: я нашел другое решение с использованием HandBrake и ffmpeg (с помощью этого вопроса ), но вопрос стоит.

Изменить еще раз. Оказывается, мое другое решение не совсем сработало – звук десинхронизирован примерно на пять секунд, примерно в половине моих разрезанных миль на галлон, поэтому я вернулся к квадрату. Кто угодно?

2 Solutions collect form web for “Разделить MPEG-видео из командной строки?”

FFmpeg сделает это за вас.

Ваша команда может выглядеть примерно так:

Код: ffmpeg -i input.mpg -ss 00:00:10 -t 00:00:30 out1.mpg -ss – это начальная точка в hh: mm: ss с начала вашего видеофайла

-t – это время в hh: mm: ss вашего нового сегмента.

Итак, в приведенном выше примере вы начинаете 10 секунд с начала исходного файла и заканчиваете через 30 секунд.

Если вы хотите создать несколько частей за один проход, необходимо выполнить следующее:

Код: ffmpeg -i input.mpg -ss 00:00:10 -t 00:00:30 out1.mpg -ss 00:00:35 -t 00:00:30 out2.mpg В этом примере первый сегмент То же, что и в первом примере, но вы также создаете второй файл, начинающийся с 35 секунд и длительностью 30 секунд.

,

Я однажды взломал это вместе для получения видео DVD-RAM:

 #! /usr/bin/ruby -w a = [0, 0x37f9800, 0xf3e1800] filename = "input.vob" a.each_with_index{|seq_start, i| if seq_start % 1024 != 0 then puts "Error: Blocksize doesn't match 1024" end seq_end = a[i+1] if seq_end then puts "dd if=#{filename} of=chapter#{i+1}.mpeg bs=1024 skip=#{seq_start/1024} count=#{(seq_end - seq_start)/1024}" else puts "dd if=#{filename} of=chapter#{i+1}.mpeg bs=1024 skip=#{seq_start/1024}" end } 

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

Сам скрипт фактически не вызывает dd , он просто выводит команды dd необходимые для разбивки файла на куски.

  • Как установить RPM без root?
  • Авто логин для gtalk
  • Linux: настройка первичного отображения (nvidia) из командной строки
  • Запуск firefox tar.bz install в моем homedir с отдельными настройками из дистрибутива, установленного firefox
  • Очистить терминал с помощью сочетания клавиш
  • Показывать только текущее имя каталога (не полный путь) в приглашении bash
  • Каков наилучший способ восстановить некоторые фотографии в Linux? Есть ли способ использовать прежде всего для восстановления файлов, содержащих только текст?
  • Как найти беспроводной адаптер USB в файле журнала dmesg?
  • Создавать распределение размеров файлов из командной строки
  • Есть ли быстрый / автоматический способ изменения яркости монитора ночью в Windows 7 или Linux?
  • Kali Linux не может найти компьютер в сети
  • Давайте будем гением компьютера.