Конкатенация OGG видео файлов из командной строки

4418
Noufal Ibrahim

Хорошо. У меня есть несколько ogg-файлов, которые я создал, используя инструмент записи на рабочем столе . Я транскодировал их, используя ffmpegодин раз (главным образом, чтобы вырезать начало и конец).

Теперь у меня есть 3 таких файла, которые я хочу объединить в один .ogvфайл. Я попытался использовать oggCat, он вылетел с какой-то ошибкой (я попытался объединить файл с самим собой oggCat, но мне это не удалось, из-за чего я поверил, что мой дистрибутив поставляет сломанную версию пакета). Просто catиспользование файлов работает, но я не могу искать, что не круто. mencoderбеги так mencoder -ovc lavc -oac lavc file1.ogv file2.ogv file3.ogv -o complete.ogv. Он перекодирует файлы в aviи снимает немного из 3 видео.

Итак, как мне это сделать?

Обновление 1: Мой текущий обходной путь - перекодировать эти 3 файла в .mpgиспользование ffmpeg, затем catсоединить их вместе и затем перекодировать обратно ogv.

Обновление 2: PiTiVi работает для такого рода вещей, но мне нужно что-то из командной строки, что я могу автоматизировать и сценарий.

18
@ gry, Чего не хватает в текущем ответе? soandos 12 лет назад 0
@ gry, но вы хотите точно такие же функции, но другое имя? или есть разница в функциональности, которую вы ищете. Я не согласен с тем, что именно об этом просил ФП. Он хотел, чтобы его файлы были объединены, а oggCat не работал. Теперь это так, поэтому я не слежу за тем, чего не хватает. soandos 12 лет назад 0
@soandos: оригинальный вопрос был «oggCat не работает для меня, есть ли альтернатива?» и хотя спрашивающий заставил его работать, было бы полезно найти возможные альтернативы, как первоначально ожидалось. 12 лет назад 0
@ gry, это 1) исправлено (см. последний комментарий к моему ответу) и 2) я не могу найти комментарий, который вы цитируете. soandos 12 лет назад 0
Моим главным намерением было объединить видео. К тому времени, как пришли ответы, я отошел от ogv и поэтому не особо заботился о вопросе. Я прямо упомянул, что не хочу использовать oggCat, потому что он не работает для меня, когда я задал вопрос. Noufal Ibrahim 12 лет назад 1
@Noufal: Я воспроизводлю ошибку в Ubuntu 12.04 с ошибкой «OggRingbuffer :: getNextPageLength: ОШИБКА ogg-пакета не выровнена». [Проблема с панелью запуска здесь] (https://bugs.launchpad.net/ubuntu/+source/oggvideotools/+bug/944444), претензии исправлены в 12.10. В какой системе вы находитесь? Ciro Santilli 新疆改造中心 六四事件 法轮功 10 лет назад 0

4 ответа на вопрос

9
soandos

Ogg Video Tools, кажется, делают то, что вы ищете.

Краткое описание:

Иногда было бы неплохо объединить (объединить) два или более видеофайлов. Для этого вы можете использовать oggCat, который создает непрерывный видеофайл Ogg из заданных файлов.

# oggCat newFile.ogv file1.ogv file2.ogv [ file3.ogv [...] ]

Примечание . Видеофайлы должны соответствовать частоте кадров, разнице ключевых кадров, размеру кадров и т. Д.

Смотрите больше здесь и здесь .

Я упомянул мой опыт с oggCat в моем вопросе. Не сработало, даже когда я попытался объединить файл с самим собой. Noufal Ibrahim 12 лет назад 2
Вы пытались загрузить пакет напрямую? А в чем была ошибка? soandos 12 лет назад 0
Я попытался скомпилировать его из источника. Я получил очень большой hexdump, а затем segfault. Noufal Ibrahim 12 лет назад 1
файл [this] (http://sourceforge.net/projects/oggvideotools/files/oggvideotools/oggvideotools-0.8a/oggvideotools-0.8a.tar.gz/download)? Возможно, вы захотите попробовать более раннюю версию, если компиляция не удалась. soandos 12 лет назад 0
Не уверен, что вам это нужно, но бинарная версия, которую я скачал, работает. soandos 12 лет назад 1
Похоже, что были специфические патчи Debian, которые испортили это. Кажется, работает, когда я скомпилировал его прямо из исходного кода. Благодарю. Спорный вопрос, хотя. У большинства моих зрителей возникают проблемы при просмотре файлов ogv, поэтому я переключился на webM и flv. Noufal Ibrahim 12 лет назад 0
5
evilsoup

I would use ffmpeg's concat demuxer for this (requires a recent version of ffmpeg).

First, create a file called inputs.txt (or any arbitrary name), containing lines like:

file '/path/to/input1.ogv' file '/path/to/input2.ogv' file '/path/to/input3.ogv' 

Note that that can be a relative or an absolute file path. If your files are all in the same directory and named in a pattern similar to input1.ogv, input2.ogv..., you can use a for loop to generate inputs.txt:

rm inputs.txt; for f in input*.ogv; do echo "$f" >> inputs.txt; done 

Once you've created your file, you can losslessly concatenate the ogv files like so:

ffmpeg -f concat -i inputs.txt -c copy output.ogv 
Я не знал об этом. Благодарю. Noufal Ibrahim 11 лет назад 0
Хех, нашел этот ответ сразу после того, как сам его выяснил ... Решение oggCat не сработало для меня из-за некоторых странных ошибок. Это сработало хорошо .. Jindra Helcl 9 лет назад 0
1

http://www.xiph.org/oggz/ имеет функцию,

  • объединить файлы слияния Ogg вместе, чередуя страницы в порядке времени представления.

Изменить: Это не делает то, что вы хотите, так как вы хотите воспроизводить одно видео за другим.


http://sox.sourceforge.net может также работать, синтаксис ( http://sox.sourceforge.net/sox.html ):

 sox infile1 infile2 outfile 

Изменить: это обрабатывает только аудио.


Вы можете попробовать скомпилировать на oggvideotools и посмотреть, если oggCat работает тогда.

Изменить: это сработало для вас ...


Вы можете попросить по адресу http://sourceforge.net/projects/oggvideotools/support исправить проблемы с вашим дистрибутивом, включая текст сообщений об ошибках, которые вы получаете, когда вы 1) запускаете бинарный файл, полученный из репозиториев вашего дистрибутива 2) компилируете 3) запустить скомпилированную версию.

Изменить: вы ищете альтернативные программы для объединения.


Попробуйте использовать mkvtoolnix для объединения файлов OGG в один MKV, а затем извлечь из него OGG, используя тот же инструмент

Слияние отличается от объединения и не делает то, что я хочу. Сокс только аудио и не обрабатывает видео. Noufal Ibrahim 12 лет назад 1
Это "* чередует * страницы в порядке времени представления". Я хочу объединить. Один должен играть после того, как другой закончится. Noufal Ibrahim 12 лет назад 1
Поскольку это единственный ответ, я думаю, что Stack Exchange присудит ему награду, даже если она не отвечает на вопрос вообще. Noufal Ibrahim 12 лет назад 1
Я уже попробовал это. Noufal Ibrahim 12 лет назад 0
Я могу получить любой из этих инструментов "исправлено", задавая в соответствующих списках рассылки, трекеры проблем. Я ищу альтернативы тем, которые я указал. Noufal Ibrahim 12 лет назад 1
Я попробую mkvtoolnix, хотя я бы предпочел что-то вроде `oggCat`, которое на самом деле работает. Я отказался от OGG, хотя. Многие люди не могут играть в нее. Я переключился на webm и резервный flv. Noufal Ibrahim 12 лет назад 1
1
Shane Wealti

Вы пробовали использовать PiTiVi ? Поместите три клипа последовательно на временной шкале, а затем сохраните результат как один файл.

Да, но это не командная строка. Я не могу автоматизировать это с помощью скрипта, если я использую PiTiVi. Noufal Ibrahim 12 лет назад 0
Я упомянул точку в моем вопросе сейчас. Noufal Ibrahim 12 лет назад 1

Похожие вопросы