Tag Archiv: разрезка

Объединяем видеофайлы в Ubuntu

Не так давно я рассматривал вопрос разрезания файлов на части и их последующего объединения.
Рассмотрим частный случай — видеофайлы. Иногда возникает потребность объединить отдельные главы после рипа, отдельные части двухсерийного фильма и т.д. Речь не идет об объединении произвольно взятых avi-файлов, с разным разрешением, кодеками, а о тех, которые были предварительно разрезаны, или же кодировались «одной партией».

Для этих целей можно воспользоваться несколькими способами.

1. Avidemux

1) Если avidemux у вас все еще не установлен, то устанавливаем его:

sudo aptitude install avidemux

2) Запускаем avidemux и открываем первый файл через «Файл» — «Открыть».
3) В «Файл» — «Присоединить» выбираем следующий файл.
4) Повторяем действие 3 для остальных частей.
Если файлы были вида file.avi.001 file.avi.002, то avidemux может их присоединить автоматически, таким образом, действие 4 можно будет опустить. Следите за длительностью на панели программы.
5) Убедимся, что в полях «Видео» и «Звук» установлено «Копировать», а в Контейнер — просто «avi».
6) Сохраняем файл при помощи «Файл» — «Сохранить» — «Сохранить видео», не забывая указать расширение.
2. Avimerge
Можно воспользоваться avimerge из комплекта transcode-utils.
1) Устанавливаем пакет:
sudo aptitude install transcode-utils

2) В параметрах указываем файлы для объединения после ключа -i и файл назначение после -o

avimerge -i input_file1.avi input_file2.avi -o output_file.avi
Среди других ключей программы вам может пригодится , для тех случаев, когда размер видео немного превышает аудиодорожку, что приводит к рассинхрону (может быть актуально при объединении глав DVD-диска).
Если вам необходимо выбрать одну аудиодорожку из нескольких в исходных файлах, то используйте параметр -a номер_дорожки.
Следующий пример объединяет файлы с урезанием лишнего видео, выбирая в качестве основной первую аудиодорожку исходника:
avimerge -i input_file1.avi input_file2.avi -o output_file.avi -c -a 1
 3. Mencoder

Для этих же задач можно использовать mencoder, синтаксис которого понятен из примера:

mencoder -forceidx -ovc copy -oac copy -o output_file.avi input_file1.avi input_file2.avi

Какой из способов выбирать — решать вам. Иногда оказывается, что один из методов не подходит к имеющейся ситуации, тогда стоит воспользоваться другим.

Разрезка / склейка файлов

Не смотря на все большое распространение локальных сетей, Wi-fi, Bluetooth, широкополостного интернета все же иногда возникает проблема перенести весьма объемный файл, тогда как размер носителя ограничен. 
Если речь идет о видеофайлах, то их без особого затруднения можно нарезать в зависимости от формата в avidemux или mkvtoolnix, при этом каждая часть будет отлично воспроизводится независимо от других и «слить» в один файл снова не составит труда в любой из программ. 

А что же делать, если необходимо перенести файлы другого типа? Ниже рассмотрим 2 способа.

1й способ. Linux-way 😉

Используем комбинацию команд split/cat
Допустим, что нам необходимо перенести некий образ диска в формате iso — file.iso размером 7ГБ в два приема на флешке в 4ГБ.
Для разрезки испрользуем:

split -a 1 -b 3700m file.iso file.iso.

в конце команды — точка, как и указано. Мы взяли 3700m (больше, чем  половина от 7GB, чтобы не ошибиться с размерами. Таким образом первая часть будет немного больше.

Для склейки, поместив все части в один каталог, выполним:

cat file.iso.* >>file.iso

2й способ. Windows-way.

Предположим, что мы должны передать файлы стороннему человеку, который использует Windows. 

В этом случае обратимся к многотомным архивам, выбрав наиболее привычный для windows — rar.

rar a file.rar file.iso -v3700000k -m0

 В результате мы получим file.part1.rar file.part2.rar , которые без проблем откроются как windows-архиваторами (7-zip, WinRar), так и в linux.

Примечания: m0 указывает, что файлы архивируется без сжатия; размер каждой части здесь будет немного меньше, чем в предыдущем случае, т.к. 3700m несколько больше, чем 3700000k (не забываем, что 1m=1024k)