LINUX.ORG.RU

[C++]универсальный API для видео\аудиокодеков

 


0

0

Есть мысль сделать такую штуку. Реализовать думаю через библиотеку. Как думает All, стоит ли запускать из библиотеки сам конвертер, или же лучше возиться с либами кодеков? Выходит, в последнем случае у нас к библиотеке будет подключена библиотека.

★

Последнее исправление: ShTH (всего исправлений: 2)

А чем phonon не устраивает? А если уж так хочется странного, то бери Qt Multimedia, с помощью него ты сможешь захватывать и воспроизводить звук в wav формате, а дальше уже ищи как с кодеками общаться

Gorthauer ★★★★★
()
Ответ на: комментарий от ShTH

То есть моя цель - сделать так, чтобы через это API можно было задействовать любой поддерживаемый кодек, но совсем не думать о его специфичных ключах.

ShTH ★
() автор топика
Ответ на: комментарий от name_no

gstreamer? sdl? ffmpeg? xine? phonon? Расскажи, в чём отличие твоего проекта от перечисленных, а то я правда не понял.

Я делаю API КОНВЕРТЕРА_для_того,чтобы не думать над специфкой.

gstreamer? sdl? ffmpeg? xine? phonon

Что-то из этого предназначено\способно конвертировать?

ShTH ★
() автор топика
Ответ на: комментарий от ixrws

А вообще достаточно расплывчатая формулировочка - конвертировать. Лучше скажи чего тебе не хватает в упомянутых либах, может быть проще будет допилить или быть наложить очень тонкий слой на них.

ixrws ★★★
()
Ответ на: комментарий от ixrws

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

ShTH ★
() автор топика
Ответ на: комментарий от ShTH

С уборкой закончу, и размусолю подробно то, что я придумал. А вы скажете, стоит ли так делать. И почему (не)стоит.

ShTH ★
() автор топика
Ответ на: комментарий от ShTH

ffmpeg может. Я им перегоняю видео на айпод и раньше перегонял в xvid для SmartMovie на симбиан.
Вроде как там все одинаково.

VoofT
()
Ответ на: комментарий от VoofT

ffmpeg - такая же оболочка для нескольких, как и mencoder. А я хочу их оба связать + возможно ещё некоторые. А может стоит выбрать между mencoder'ом и ffmpeg'ом, а на остальное забить? Но это вряд ли.

ShTH ★
() автор топика
Ответ на: комментарий от VoofT

>> ffmpeg может

причем пример того, как работаю либы ффмпега, можно посмотреть в реализации vlc

велосипед

kto_tama ★★★★★
()
Ответ на: комментарий от ShTH

ffmpeg - такая же оболочка для нескольких, как и mencoder. А я хочу их оба связать + возможно ещё некоторые.

actually, mencoder и есть оболочка над несколькими кодеками. Вот над этими в моём случае:

$ mencoder -ovc help
MEncoder SVN-r29463-4.3.4 (C) 2000-2009 MPlayer Team

Available codecs:
   copy     - frame copy, without re-encoding. Doesn't work with filters.
   frameno  - special audio-only file for 3-pass encoding, see DOCS.
   raw      - uncompressed video. Use fourcc option to set format explicitly.
   lavc     - libavcodec codecs - best quality!
   vfw      - VfW DLLs, read DOCS/HTML/en/encoding-guide.html.
   qtvideo  - QuickTime DLLs, currently only SVQ1/3 are supported.
   libdv    - DV encoding with libdv v0.9.5
   xvid     - XviD encoding
   x264     - H.264 encoding
lavc - это, собственно, кодеки из ffmpeg, там внутри ещё несколько кодеков.

Оболочек и обёрток и без того пруд пруди. И mencoder - как раз и есть оболочка надо кодеками. Юноша, я читаю Ваши сообщения и вижу, как Вы ничего не понимаете о том, о чём пишете. А то, что Вы предлагаете - не нужно даже Вам лично. Правда, направьте свою энергию уже на обещанный фронтэнд для mencoder.

name_no ★★
()
Ответ на: комментарий от name_no

Юноша, я читаю Ваши сообщения и вижу, как Вы ничего не понимаете о том, о чём пишете.

Быть может я плохо объяснил.

Правда, направьте свою энергию уже на обещанный фронтэнд для mencoder.

О нём и речь. Хотел как лучше.

ShTH ★
() автор топика
Ответ на: комментарий от ShTH

>О нём и речь. Хотел как лучше.

Кривой пятиколёсный лисапет - «это „как лучше“? Лучше время на самообразование потратьте.

Led ★★★☆☆
()
Ответ на: комментарий от Led

Похоже вы меня не поняли. Я хотел сделать упор на расширяемость и простоту. Чтобы тому, кто захочет писать подобное было легче это сделать. Или дописать плагин.

ShTH ★
() автор топика

ТС, не занимайся ерундой, лучше потрать свои силы на допиливание какого нибудь имеющегося проекта, чем на создание очередного велосипеда. Полезнее будет

yoghurt ★★★★★
()
Ответ на: комментарий от ShTH

> Похоже вы меня не поняли. Я хотел сделать упор на расширяемость и простоту.

тогда вот тебе рекомендация: сделай список параметров, которые может принимать mencoder в виде xml-файла. Распарсив этот файл, на основе данных из него рисуй вкладки и галочки. Когда изменится командная строка mencoder-а ты сможешь изменить свою программу не меняя плюсовый код. Тот, кто захочет вместо mencoder'a ffmpeg - просто напишет другой xml с параметрами ffmpeg. Только предупреждаю тебя: подумай очень хорошо над структурой этого xml-файла.

Сохранять настройки последней сессии можно будет в виде того же xml, добавив в него значение каждого параметра.

Например, так.

По-максимуму. Описываешь возможные типы параметров: строка, переключатель, список, список с множественным выбором, предусмотри тип, который будет обозначать, что параметры придётся склеить через разделитель и т.п. Потом описываешь просто подряд все параметры, какие вспомнишь, указываешь их тип, подпись, название, ключ командной строки. Потом начинаешь их группировать по разным признакам. Создаёшь группу, которая будет обозначать отдельную вкладку, в ней несколько групп, которые будут обозначать... эти... группы, короче, а в них уже напихиваешь параметры. Плюс предусмотри там же возможности задания пресетов для разных параметров кодирования, в них тоже нужно напихивать параметры, но уже с заранее заданными значениями.

Вот это тебе понадобится: http://ru.wikipedia.org/wiki/XML_Schema

P.S. Кажется, теперь я тебя понял ))

name_no ★★
()
Ответ на: комментарий от name_no

Я хочу сделать это же, но привязки на C++. Что же, идея парсинга аргументов xml интересная. Спасибо.

ShTH ★
() автор топика
Вы не можете добавлять комментарии в эту тему: топик перемещен в архив.