Как обрезать и объединить.ogv видео?
В настоящее время я создаю видеоурок для программного инструмента. Я записал несколько коротких видео (от 30 секунд до 4 минут) с помощью RecordMyDesktop, которые мне теперь нужно объединить в одно видео. Конвейер задач выглядит следующим образом:
Конвертируйте файлы из ogv в avi (или другой работающий формат).
Обрезать ненужные разделы из видео (например, взаимодействие с самой RecordMyDesktop).
Объедините различные обрезанные видео в один файл.
Звучит просто, но последние несколько недель я жил целой сагой, пытаясь сделать это безуспешно. Ниже я подробно опишу шаги, которые я предпринял, и проблемы, которые я обнаружил.
Преобразование огв в 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, но я пока не смог понять, как это сделать. Я обновлю ответ, если найду способ.