1

Я хотел бы отправить несколько видео для моей подруги, но я бы позаботился о том, чтобы их можно было воспроизводить на ее мобильном телефоне. Я хочу выполнить задачи по кодированию на моем компьютере с Linux, потому что мой компьютер является низкоуровневым. Я могу использовать только ffmpeg или mencoder или другой инструмент CLI. Она может воспроизводить видео на YouTube, но я не хочу загружать такие видео на YouTube. Есть ли предустановки для конкретных мобильных телефонов? И когда она просто нажимает прямую ссылку на видео, она будет воспроизводиться непосредственно на мобильном телефоне или я должен встроить ее в html5 / flash-плеер, как на youtube?

1 ответ1

2

Что поддерживает устройство

Согласно официальной документации Xperia U, это устройство может декодировать видео H.264, High profile, уровень 3.2 в контейнере MP4 с аудио AAC.

Пример команды ffmpeg

ffmpeg -i input -codec:v libx264 -crf 23 -preset medium -profile high -level 3.2 \
-pix_fmt yuv420p -movflags +faststart -codec:a aac -strict experimental out.mp4

Что делают эти варианты

  • -codec:v libx264 - Выберите видеокодер libx264 для кодирования видео H.264.

  • -crf 23 - Уровень качества видео на выходе . 23 - значение по умолчанию, а более низкое значение - более высокое качество.

  • -preset medium - компромисс между скоростью кодирования и эффективностью сжатия. По умолчанию medium .

  • -profile high - устанавливает высокий профиль видео H.264.

  • -level 3.2 - устанавливает уровень видео H.264 на 3.2.

  • -pix_fmt yuv420p - ffmpeg пытается минимизировать или избежать подвыборки цветности (в зависимости от входа, кодера, версии ffmpeg и т. д.). Технически это хорошая вещь, но может привести к выводу, который не могут обрабатывать игроки, не основанные на FFmpeg. Это обеспечивает совместимую схему подвыборки цветности.

  • -movflags +faststart - перемещает "атом moov" в начало файла, поэтому воспроизведение может начаться до полной загрузки файла в случае прогрессивной загрузки (например, просмотр через браузер).

  • -codec:a aac -strict experimental - кодировать аудио AAC, используя экспериментальный собственный кодер FFmpeg AAC. Это не худший кодер AAC, но если это звучит дерьмово, используйте более высокую скорость передачи битов с -b:a (по умолчанию 128k).

Дополнительные примечания

  • Используйте последнюю версию ffmpeg . Старые версии не обеспечивают правильное количество контрольных кадров при использовании -level (исправлена ошибка # 3307), но, поскольку вы используете Arch Linux, вам не нужно об этом беспокоиться.

  • Пакет ffmpeg из репозитория Arch Linux Extra поддерживает только собственный кодировщик FFmpeg AAC. Перекомпилируйте из ABS с помощью --enable-libfdk-aac --enable-nonfree (с пакетом libfdk-aac как зависимым) или используйте пакет ffmpeg-git в AUR для получения поддержки кодирования с помощью libfdk_aac, который является лучшим кодером AAC, поддерживаемым FFmpeg. Если вы хотите попробовать это, рекомендуется использовать пакет ABS поверх пакета AUR.

  • Если входное видео и / или аудио уже совместимы, вы можете просто скопировать их в потоковом режиме вместо перекодирования, например, с помощью -codec:a copy .

  • Мобильное устройство может иметь дополнительные ограничения, о которых я не знаю, поэтому вам придется экспериментировать. Я также не уверен, что устройство будет работать с простой ссылкой на видео, но это было бы легко проверить.

  • См. Руководство по кодированию FFmpeg H.264 и Руководство по кодированию FFmpeg AAC для получения дополнительной информации.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .