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 .)
Спасибо за любой совет!
Ответы:
Какие варианты у меня есть?
В настоящее время (по состоянию на 2017 год) существует три формата, с помощью которых вы можете кодировать свои домашние видео, если вы хотите сжатие с потерями при хороших размерах и качестве файлов:
Вот несколько вещей для рассмотрения:
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, например:
Примечания о настройках:
-preset
настройку, чтобы повысить эффективность сжатия за счет увеличения времени кодирования, например, установкой-preset slow
или-preset slower
.И это все, что нужно, правда. Никаких других настроек не требуется, если вы просто хотите уменьшить размер файла. Прочитайте руководство по кодированию H.264 и руководство по кодированию AAC, чтобы получить больше возможностей, если вам интересно.
Смотрите также: Какие параметры я должен смотреть, чтобы уменьшить размер файла .MOV?
источник
ffmpeg -i $1 -vcodec libx264 -acodec libvo_aacenc -preset slower -crf 23 ${1%.*}.mkv
есть ли важные различия между aac и libvo_aacenc? Спасибо!aac
и другоеlibvo_aacenc
работает нормально, однако оба они предлагают плохое качество по сравнению сlibfdk_aac
илиlibfaac
. Возможно, вам придется предоставить более высокие битрейты для достижения того же качества. Для получения дополнительной информации см. Этот ответ: Команда FFmpeg для преобразования MP3 в AACffmpeg -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
. Не уверен, что это правильно.libvo_aacenc
, он, очевидно, будет использовать этот кодер. Чтобы использовать FFmpeg-роднойaac
кодировщик, вам нужно-c:a aac -strict experimental
. Но я не понимаю, в чем вопрос, может быть, мы говорим о разных вещах? (Вы также можете опубликовать новый вопрос, если хотите)H.264 обновляется до H.265. Это позволило бы еще большее сжатие. Тем не менее, я думаю, что 150/200 МБ в минуту - это слишком много. Если бы вы загружали видео на YouTube в формате 720p, YouTube сжал бы его примерно до 10–15 МБ / с. Несмотря на то, что на YouTube есть несколько экспертов, которые настраивают сжатие так, чтобы это стоило им меньшую пропускную способность, вы сможете добиться аналогичного качества с 20 МБ / с, а не 200 МБ / с.
Один из простых способов конвертировать видео в такую низкую скорость передачи данных, но все еще высокого качества, - это загрузить их на YouTube (и сохранить как личное видео). Также было бы легче поделиться им с друзьями. Недостатком является то, что вы можете испытывать длительное время загрузки ...
источник