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
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.