Объединить видео файлы через командную строку?

Проблема заключается в вложенной подстановке команд с обратными выводами. bash сначала пытается выполнить grep -l psycopg (который находится между первыми двумя обратными выводами). Но нет имени файла, поэтому он ожидает ввода на stdin (вы можете попробовать это, введя psycopg).

Вы можете избежать этой проблемы, используя синтаксис $(command) для подстановок команд:

grep -l  psycopg $(find . -name '*.py')
ls -l $(!!)

В этом случае он может быть вложен.

1
задан 29 July 2016 в 22:31

3 ответа

Если вы заинтересованы в использовании FFmpeg (что открывает возможность объединения других типов носителей, менее приемлемых, чем .vob), вы можете использовать для своего примера следующее:

ffmpeg -i "concat:VTS_01_1.vob|VTS_01_2.vob|VTS_01_3.vob|VTS_01_4.vob" -c copy output.vob

Признаюсь, что FFmpeg это специальная программа, которую вы бы предпочли не использовать, но обратите внимание, что другие типы носителей могут потребовать other перед конкатенацией, и в этих случаях потребуются услуги FFmpeg ...

Ссылки:

FFmpeg trac: Объединение медиафайлов
4
ответ дан 23 May 2018 в 07:41
  • 1
    Спасибо за отличный ответ. Я использую FFmpeg совсем немного ... Я отредактировал вопрос, включив слово «GUI», и это то, о чем я думал в качестве альтернативы. – Joel DeWitt 29 July 2016 в 22:33

вы можете использовать команду cat (concatenate) для этого.

В вашем случае:

cat VTS_01_1.vob VTS_01_2.vob VTS_01_3.vob VTS_01_4.vob > Output.vob
3
ответ дан 23 May 2018 в 07:41

VOB

VOB требует особого внимания благодаря их потенциально сложной структуре и временным несоответствиям, поэтому слепое конкатенирование может иметь неожиданные результаты. Для этого формата вы должны использовать инструменты, поддерживающие структуру DVD.

Исходный код FFmpeg поставляется с инструментом (tools/dvd2concat), который использует lsdvd для создания правильного сценария конкатенации:

cd ffmpeg/tools
./dvd2concat path/to/dvd/structure > file.concat
ffmpeg -safe 0 -protocol_whitelist subfile,file,concat -f concat -i file.concat -map 0 -c copy -f dvd output.vob

Другие типы файлов

ffmpeg имеют три метода для конкатенации:

concat demuxer - для общей конкатенации или для этого без повторного кодирования. concat protocol - Аналогично использованию cat. Для форматов, которые можно просто объединить без проблем (MPEG-1, MPEG-2 PS, DV, rawvideo). concat filter - Полезно, если вы выполняете какую-либо фильтрацию (масштабирование, наложения и т. д.).

Также см. FFmpeg Wiki: Concatenate и FFmpeg FAQ: Как я могу конкатенировать видеофайлы?

1
ответ дан 23 May 2018 в 07:41

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

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