Я пытаюсь найти наиболее подходящий формат видео без потерь для видео 1280x720 25fps. Видео имеет 4 минуты. Звук будет 320 кбит / с mp3, это не имеет большого значения. Идеальные условия:
- Без потерь (может быть без потерь)
- Контейнер + кодек можно играть на большинстве платформ
- Контейнер + кодек можно воспроизводить на современных проигрывателях DVD (с поддержкой других форматов, кроме DVD)
- Размер менее 700 МБ
Это вообще возможно? Уже три дня боролись, без каких-либо удовлетворительных результатов, даже получая файлы 12 ГБ (кажется, много - 3 ГБ / мин).
video
ffmpeg
video-editing
mrkva
источник
источник
Ответы:
Лучший фактический, математически без потерь формат, который я знаю, это huffyuv, но он будет генерировать невероятно большие файлы и не будет совместим со многими. Для записи, ffmpeg может сделать это с:
X264, кодер h.264 с открытым исходным кодом, имеет режим без потерь. Это может происходить внутри контейнера MP4 и должно быть совместимо с большинством аппаратного обеспечения, созданного за последние несколько лет. Первая команда даст быструю скорость кодирования, но большой файл; вторая команда займет намного больше времени, но файл должен быть примерно вдвое меньше быстро закодированного (хотя он все равно будет довольно большим):
Если это не дает вам достаточно маленький файл, CRF обычно считается «визуально без потерь»:
Как правило, я рекомендую очень быстрый пресет для кодирования с x264, по моему опыту он предлагает лучший компромисс между скоростью и размером (существует большой спад в размере файла между супербыстрым и очень быстрым, любой медленнее, чем этот, и он более инкрементный). Общий совет - использовать самые медленные пресеты, которые вы можете обработать, пресеты: сверхбыстрые, сверхбыстрые, очень быстрые, быстрые, быстрые, средние, медленные, медленные, очень низкие.
Смотрите здесь для более подробного руководства по кодированию x264.
источник
veryfast
в качестве хорошего значения по умолчанию для lossy x264.medium
хороший средний уровень, но я обычно используюveryslow
для окончательного кодирования чего-либо. Кроме того,huffyuv
даже не очень быстро, я бы не рекомендовал его для чего-либо, кроме совместимости.В эти дни мне нравится webm :
Я считаю, что для более быстрого преобразования с многоядерными процессорами рекомендуется использовать на один поток меньше, чем у реальных ядер. Итак, с 8 ядрами вы можете указать 7 потоков, как это:
источник
Для полной совместимости с DVD-плеерами вам необходимо использовать формат MPEG-2, контейнер, ограничения, кодеки. Я предполагаю, что «современные проигрыватели» означают совместимость с «mp4», которая в основном и в основном является проигрывателем файлов mp4 - H.264, MPEG-4, AVC => libx264
# ВИДЕОподробнее: https://de.wikipedia.org/wiki /H.264
Посмотрите https://trac.ffmpeg.org/wiki/Encode/H.264 , особенно ту часть, где речь идет о «профиле» и «уровне», для совместимости
# AUDIOИспользование
-profile:v high -level 4.0
должно сделать этоИзбегайте перекодирования аудио-треков с кодеками с потерями - любой формат mp3 с потерями, даже 320 кбит / с.
# В заключениеИспользуйте
-c:a copy
вместо этого.До сих пор это сделало довольно хорошую работу для меня. нет проблем с синхронизацией
Аудиопотоки не привязаны к ключевым кадрам. Точные сокращения возможны.
Если ваша звуковая дорожка записана с частотой дискретизации 44 кГц, используйте макс. 256 Кбит / с
Используйте кодеки с потерями только для окончательного кодирования вашего видео, если вам необходимо выполнить определенные предварительные условия.
Я слышал о некоторых проблемах с синхронизацией звука, но похоже, что основная проблема была, это был защищенный материал (!).
Я бы предпочел что-то вроде этого:
ffmpeg -i input -c:v libx264 -crf 5 -preset faster -profile:v high -level 4.0 -c:a copy output.mp4
источник