В каком формате хранить домашние видео

6

TL; DR: мои домашние видео занимают слишком много места и непрактичны для резервного копирования в Dropbox. В какой формат вы советуете конвертировать их?

Длинная версия:
год назад я купил новую компактную камеру (Canon SX230HS), чтобы я мог делать более приятные снимки и фильмы моей дочери. Хотя качество значительно улучшилось по сравнению с моей предыдущей камерой, размер получаемых файлов также намного больше, особенно в фильмах. В предыдущем году я произвел столько же данных, сколько и за 8 лет до этого. Это становится проблемой, потому что я хотел бы сделать резервную копию всего на Dropbox, поэтому я бы хотел избежать резервного копирования нескольких гигабайт в месяц.

Я уже настроил свой Canon на съемку с разрешением 1280x720 вместо 1920x1080, но это все равно приводит к 150–200 МБ / мин в формате H.264.
Поскольку эти фильмы предназначены только для просмотра семьей и друзьями и размещены на YouTube / Facebook, я думаю о преобразовании их в другой формат. Это, очевидно, приведет к потере качества, но я не думаю, что это проблема, ведь только 10 лет назад люди все еще использовали кассеты для такого рода записи с гораздо меньшим качеством.

Какой формат лучше всего подойдет для этого? Я думал о WebM, так как кажется, что результаты довольно хорошего качества, и, поскольку он продвигается Google, я ожидаю, что он принесет хорошие изменения в выживании и будет признан.
Я большой поклонник открытых форматов, поэтому я бы предпочел, чтобы формат был открытым. Но я также хотел бы, чтобы он был максимально портативным. Он должен легко воспроизводиться на большинстве распространенных устройств, таких как планшет. (К моему удивлению, это было не совсем так на моем планшете Google Nexus 7. Когда я пытался конвертировать webm конвертированный фильм на планшете, у него были серьезные проблемы с его воспроизведением. Я мог только заставить его гладко играть на Nexus с аппаратным декодером отключено в MX Player .)

Спасибо за любой совет!

Йерун
источник
1
Вы, вероятно, получите хороший совет о том, как уменьшить ваши файлы, но нельзя обойти стороной тот факт, что видеопотоки содержат много данных. Вы можете сжать эти данные различными способами, но есть предел тому, что вы можете сделать, не ухудшая качество. Забудьте о том, чтобы хранить их в Dropbox, если вы не готовы тратить много денег. Вы должны посмотреть на устройства NAS или USB3-диски, которые стоят около $ 150 / терабайт.
Исаак Рабинович
1
Хотя люди не согласятся с этим комментарием, h264 достаточно открыт для ваших целей. Вы можете транскодировать на более низкий битрейт, используя Handbrake. Что касается резервных копий, то лучше использовать Backblaze или одну из других десятков онлайн-резервных копий, поскольку они получат все, а не только ваши видео.
Emgee
В настоящее время я говорю о 30 ГБ изображений и фильмов на 2012 год. Поэтому, если я смогу уменьшить размер видео примерно до 10% от их первоначального размера, я могу уже несколько лет создавать резервные копии на самой дешевой учетной записи Dropbox. Мне нравится Dropbox, потому что он прост в использовании на Android и Linux, и я уже использую его. Это также позволяет легко обмениваться фотографиями. Резервное копирование других вещей на самом деле не является проблемой, так как большая часть моих других данных уже находится в репозиториях Git + у меня есть резервная копия всего на NAS. Но я хочу подпорку вне места моих картин , как это то , что вы никогда не сможете восстановить , если бедствие ...
Йерун

Ответы:

7

Какие варианты у меня есть?

В настоящее время (по состоянию на 2017 год) существует три формата, с помощью которых вы можете кодировать свои домашние видео, если вы хотите сжатие с потерями при хороших размерах и качестве файлов:

  • H.264 (MPEG-4 AVC) - стандарт де-факто
  • H.265 (HEVC) - преемник H.264
  • VP9 - открытый видеокодек Google от WebM

Вот несколько вещей для рассмотрения:

  • VP9 (с кодировкой libvpx) лучше, чем H.264 (с кодировкой x264) с точки зрения качества и размера файла. HEVC (закодированный с помощью x265) даже немного лучше, чем VP9, ​​но с уменьшением отдачи для высоких разрешений. Netflix провел обширное тестирование в этом направлении.

  • x264намного быстрее, чем x265или libvpx, поэтому, если время кодирования является проблемой, выберите H.264.

  • Все эти форматы имеют хорошую поддержку в автономных плеерах на ПК.

  • HEVC не поддерживается в большинстве браузеров, и, вероятно, никогда не будет, так как он обременен патентом, и ситуация развивается не очень хорошо.

  • Мобильные устройства имеют лучшую поддержку H.264. iOS не поддерживает VP9. Android поддерживает все эти форматы.

Как мне сделать кодировку?

Для архивирования ваших видео вы должны использовать режим кодирования с постоянным качеством ( в популярном кодере x264 он называется CRF ). Если вы просто установите постоянную скорость передачи битов, вы получите худшее качество в целом без реальной выгоды, кроме знания размера файла, который вы получаете.

В то время как для H.264 существуют различные кодеры, даже коммерческие, x264 должен обеспечить вам отличное качество, например, с FFmpeg, например:

ffmpeg -i input.mp4 -c:v libx264 -crf 18 -c:a aac -b:a 192k out.mp4

Примечания о настройках:

  • CRF установлен на 18, что даст вам более или менее визуальные результаты без потерь. Чем ниже значения, тем лучше качество, а чем выше, тем хуже качество. Допустимые значения: от 18 до 28. По умолчанию - 23. Вы можете использовать более высокий CRF, если вам все еще нравится качество видео.
  • Если результирующий битрейт слишком высок, некоторые мобильные телефоны / планшеты могут не воспроизводить файл. Выберите более высокое значение CRF в этом случае.
  • Вы можете использовать другую -presetнастройку, чтобы повысить эффективность сжатия за счет увеличения времени кодирования, например, установкой -preset slowили -preset slower.
  • Я выбрал кодировку AAC с помощью встроенного кодера FFmpeg со скоростью 192 кбит / с. Это должно быть достаточно для сохранения прозрачности звука.

И это все, что нужно, правда. Никаких других настроек не требуется, если вы просто хотите уменьшить размер файла. Прочитайте руководство по кодированию H.264 и руководство по кодированию AAC, чтобы получить больше возможностей, если вам интересно.

Смотрите также: Какие параметры я должен смотреть, чтобы уменьшить размер файла .MOV?

slhck
источник
Спасибо за ваш отличный ответ! Прочитав ответ Jochem Kuijpers, я начал экспериментировать с ffmpeg и x264. Я пришел почти к той же команде преобразования, что и в вашем ответе. За исключением того, что в настоящее время я использую контейнер MKV. В то время как MP4 и MKV воспроизводятся на моем телевизоре Nexus 7 и Samsung, я выбираю MKV, чтобы, по крайней мере, контейнер оставался открытым форматом. Есть ли причины не делать этого? Это команда bash, которую я использую: ffmpeg -i $1 -vcodec libx264 -acodec libvo_aacenc -preset slower -crf 23 ${1%.*}.mkvесть ли важные различия между aac и libvo_aacenc? Спасибо!
Джероен
1
Нет, MKV абсолютно подходит, если он работает для вас, но здесь ситуация похожа на кодеки: MP4 является стандартом MPEG и (все еще) имеет гораздо более широкую поддержку, чем MKV. Я думаю, это может измениться, но на это нужно время. Что касается FFmpeg AAC, то и то aacи другое libvo_aacencработает нормально, однако оба они предлагают плохое качество по сравнению с libfdk_aacили libfaac. Возможно, вам придется предоставить более высокие битрейты для достижения того же качества. Для получения дополнительной информации см. Этот ответ: Команда FFmpeg для преобразования MP3 в AAC
slhck
У меня действительно было впечатление, что MP4 все еще более широко поддерживается. Пока я рассматривал MKV, я провел быстрый тест для конвертации в MP4, ffmpeg -i foo.mkv -vcodec copy -acodec copy foo.mp4который, кажется, работает без проблем и занимает всего секунду, потому что (если я правильно понимаю) это просто копирует аудио и видео в новый контейнер.
Йерун
Я только что попробовал aacкодек, и, к моему удивлению, полученный файл был на 100 КБ меньше, даже с -b:a 192k. Вывод ffmpeg все еще показал Stream #0.1: libvo_aacenc, 48kHz, stereo, s16, 200 kb/s. Не уверен, что это правильно.
Йерун
1
Хорошо, тогда вы меня запутали. Да, потоки могут быть скопированы. Что касается AAC: если ваш вывод показывает libvo_aacenc, он, очевидно, будет использовать этот кодер. Чтобы использовать FFmpeg-родной aacкодировщик, вам нужно -c:a aac -strict experimental. Но я не понимаю, в чем вопрос, может быть, мы говорим о разных вещах? (Вы также можете опубликовать новый вопрос, если хотите)
slhck
2

H.264 обновляется до H.265. Это позволило бы еще большее сжатие. Тем не менее, я думаю, что 150/200 МБ в минуту - это слишком много. Если бы вы загружали видео на YouTube в формате 720p, YouTube сжал бы его примерно до 10–15 МБ / с. Несмотря на то, что на YouTube есть несколько экспертов, которые настраивают сжатие так, чтобы это стоило им меньшую пропускную способность, вы сможете добиться аналогичного качества с 20 МБ / с, а не 200 МБ / с.

Один из простых способов конвертировать видео в такую ​​низкую скорость передачи данных, но все еще высокого качества, - это загрузить их на YouTube (и сохранить как личное видео). Также было бы легче поделиться им с друзьями. Недостатком является то, что вы можете испытывать длительное время загрузки ...

Йохем Куйперс
источник