2008-11-20 4 views
2

Я ищу, чтобы добавить поддержку для чтения и записи видеофайлов в моем приложении. Если вам нужно было выбрать один формат файла и комбинацию кодеков, которые удовлетворяли бы большинство пользователей, которые вы выбрали бы:Если вам нужно было добавить поддержку одного видеофайла и кодека, который вы бы выбрали?

1) MPEG-4/H.264 (.mp4) 2) AVI/DiVX (. AVI) 3) Ogg/Theora (.ogg) 4) Windows Media Video (.wmv)

Я склоняюсь к MPEG-4/H.264 при условии, что она поддерживается в Linux, Mac OS X, Flash Player, iPod, Playstation 3, XBox360 и поддержка в Microsoft Silverlight и Windows Media Player 12.

Я ничего не теряю? Есть ли что-то лучшее, что я могу выбрать?

ответ

3

Это зависит от того, что делает ваша заявка. Если вы хотите обрабатывать видеозаписи, записанные с карты видеозахвата, вам, вероятно, нужно будет прочитать файлы .mpg с встроенным mpeg2. Большое количество видеороликов использует контейнер .avi или .wmv. Microsoft нажимает .wmv, но .avi имеет намного лучшую поддержку среди бесплатных инструментов. Не многие инструменты поддерживают контейнеры .mp4 в Windows (Mac, вероятно, другой). H.264, mpeg2 и mpeg4 - мои любимые кодеки. H.264 отличается отличным качеством/битрейтом, но делает точные и быстрые поиски жесткими и чрезвычайно насыщенными CPU. mpeg4 почти так же хорош, как и h.264 с точки зрения качества/битрейта, но он намного менее интенсивен. mpeg2 требует гораздо больше бит для достижения того же качества, но он поддерживается практически везде, и его очень легко декодировать и искать в этих файлах.

Если вы не против использования кода LGPL, я бы предложил посмотреть на libavcodec и libavformat ffmpeg. Это позволит вам делать все, что вы упомянули на всех платформах (хотя я не уверен в Ogg & Theora - я их не использовал).

1

Я думаю, что ваш первый вариант был бы моим выбором. Я думаю, что большинство приложений могут читать этот формат, и он менее гибкий.

Если я прав, файлы AVI/DIVX могут содержать различные типы носителей, то же самое касается wmv. Это затрудняет использование этих форматов, потому что вам необходимо поддерживать все кодировки.

0

Прежде всего, у вас также есть звук в ваших видео? Если да, я бы пошел с mp3.

Теперь, учитывая видеокодек и видеоконтейнер. Я думаю, что вам не следует рассматривать варианты 3 и 4 по разным причинам. Theora действительно непопулярна (я еще только что натолкнулся на теоретическое видео), и WMV - это технология Microsoft, поэтому ваши варианты немного ограничены.

Теперь о первых двух: я бы пошел с видео DivX (Mpeg4 часть 2) в контейнере Avi. Это действительно популярно, поскольку большинство компьютеров и множество DVD-дисков способны воспроизводить такие видео. Кроме того, есть большой кодек с открытым исходным кодом DIVX, XVID. Наконец, DIVX требует гораздо меньше ресурсов, чем H.264 как для кодирования, так и для декодирования. Последнее важно, поскольку, в зависимости от параметров кодирования, кодирование H.264 в реальном времени может даже не поддерживаться.

Отсутствие поддержки AVI/DIVX на нескольких платформах не является проблемой, поскольку очень легко перекодировать в любой формат с помощью инструментов с открытым исходным кодом.