Конвертируем AVCHD для последующей обработки

Как-то, по не знанию, я скопировал AVCHD потоки без сопутствующих файлов и думал, что позже я смонтирую это видео. Они прекрасно проигрывались плеерами, но упорно не желали импортироваться в видео-редакторы.

Первое что пришло мне в голову – это пересобрать видео- и аудио-потоки в другой контейнер без перекодировки. Эксперимент закончился неудачей – полученные файлы (а были перепробованы и avi, и mpeg, и mov контейнеры) опять нормально воспроизводились, но либо не импортировались в редактор, либо видео оказывалось местами испорченное.

Тогда я решил полностью перекодировать файл с максимально возможным качеством.

ffmpeg -i 00001.MTS -copyts \
    -acodec libfaac -ar 48000 -ab 256k \
    -vcodec libx264 -crf 15 -coder 0 \
    -filter:v yadif,scale=1280:720 -r 25 \
    output.mp4

Поясню параметры, которые тут использовались:

  • copyts – копирует временные метки и нужен для правильной синхронизации видео и звука;
  • cfr – задает качество при однопроходном кодировании (меньше – лучше качество);
  • coder 0 – отключаем CABAC так как не требуется оптимальный битрейт.

А раз происходит полная перекодировка, то я решил сразу деинтерлейсить видео и немного уменьшить размеры картинки.

Полезная документация:

PS. Собрать свежую стабильную версию FFmpeg всегда можно с помощью Homebrew

brew install ffmpeg