Как обрезать и объединить.ogv видео?

В настоящее время я создаю видеоурок для программного инструмента. Я записал несколько коротких видео (от 30 секунд до 4 минут) с помощью RecordMyDesktop, которые мне теперь нужно объединить в одно видео. Конвейер задач выглядит следующим образом:

  1. Конвертируйте файлы из ogv в avi (или другой работающий формат).

  2. Обрезать ненужные разделы из видео (например, взаимодействие с самой RecordMyDesktop).

  3. Объедините различные обрезанные видео в один файл.

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

Преобразование огв в avi

Здесь есть различные темы на эту тему, указывающие на несколько инструментов. Многие из этих потоков кажутся устаревшими, но мне в итоге удалось использоватьavconvНапример:

avconv -i "input.ogv" -vcodec mjpeg -acodec mp2 -qscale 10 "output.avi"

Ранее я пробовал с ffmpeg, Avidemux, Lives и другие, но все они терпят неудачу с ошибками или сбоями в Ubuntu 14.04.

С avconv наблюдается видимая потеря качества изображения, и к звуку добавляется много шума, но ни один из них не является катастрофическим.

Урожайность

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

У меня не было ошибок при выполнении этой задачи с Avidemux, но получающиеся видео начали давать проблемы. Тотем не может сыграть в одну из них, выдав исключение; OpenShot также выдает предупреждение при открытии некоторых из этих видео, обрезанных с помощью Avidemux.

сращивание

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

  • OpenShot - заполнил 4 Гб оперативной памяти и продолжил заполнять 4 Гб подкачки, после чего система перестала отвечать, что привело к перезагрузке. В общей сложности обрезанные видео AVI составляют чуть более 200 Мб.

  • avimerge - создает объединенный файл без выдачи предупреждений или сообщений об ошибках, но изображение и звук не синхронизированы. Есть моменты, когда звук воспроизводится из частей, вырезанных на предыдущем шаге.

  • Kino - также создает объединенный файл без ошибок, но полностью искажает изображение, постоянно мерцает и прыгает вверх и вниз, делая невозможным его понимание.

  • cat + mencoder - конечный результат имеет те же проблемы, что и с avimerge.

  • Avidemux - в конце концов выяснил, что он также может объединять файлы, хотя процесс не очевиден. Получающиеся видео дают звук и изображение из синхронизации; при открытии объединенного файла с помощью проигрывателя, такого как Totem, его длина примерно вдвое больше, чем сообщает Avidemux.

Вопрос

На этом этапе я сильно подозреваю, что что-то пошло не так перед этапом слияния, возможно, с кадрированием (и, следовательно, подробным рассказом).

Мой вопрос сводится к следующему: как выполнить эти три на первый взгляд простые задачи с видео, созданными с помощью RecordMyDesktop? Буду признателен за предложения либо о совершенно новом конвейере обработки, либо об изменениях в одном из этапов. Комментарии от опытных пользователей RecordMyDesktop также приветствуются.

Обновление I: включены результаты слияния с cat а также mencoder,

Обновление II: включены результаты слияния с Avidemux.

1 ответ

Возможно, вы ищете другой рабочий процесс.

Вы можете сначала вырезать части, которые вы хотите с oggz-chop, Просто введите в терминал:

oggz-chop -o output.ogv -s start -e end input.ogv

Это должно дать вам хорошие файлы, которые вы хотите сохранить. Убедитесь, что вы называете их в некотором последовательном порядке, чтобы иметь возможность иметь дело с ними позже.

После того:

Существует oggCat команда, которая способна объединить два или более файлов ogg вместе, создав один файл ogg длиной, равной сумме всех предоставленных.

Командная строка, которая поможет вам:

oggCat output.ogv infile1.ogv infile2.ogv infile3.ogv ...

Не путайте его с другой командой из того же пакета под названием oggJoin, который делает что-то совсем другое, создавая один файл с несколькими потоками, которые будут работать параллельно.

Теперь, для обрезки, я знаю, что есть способ сделать это без потерь, отредактировав заголовок потока Theora, но я пока не смог понять, как это сделать. Я обновлю ответ, если найду способ.

Другие вопросы по тегам