Dec 14, 2009
Augmented Reality: ресурсы
Dec 12, 2009
DirectShow: Augmented Reality Experiments
Dec 3, 2009
Media Foundation: Конвертирование аудио и видео
Sep 9, 2009
OpenCV: IP-камера AXIS
Для того, чтобы использовать OpenCV под .NET, подключаю обертку EMGU CV. Эта обертка пока лучшая из тех, что я встречал, но не без глюков.
Контекст IP-камеры создается следующим образом. Создается потомок Capture:
private class IpCapture: Capture
{
[DllImport("opencv_ffmpeg111.dll", CharSet = CharSet.Ansi)]
private static extern IntPtr cvCreateFileCapture_FFMPEG([MarshalAs(UnmanagedType.LPStr)] string filename);
[DllImport("opencv_ffmpeg111.dll", CharSet = CharSet.Ansi)]
private static extern void cvReleaseCapture_FFMPEG(IntPtr capture);
public IpCapture(string fileName)
{
_ptr = cvCreateFileCapture_FFMPEG(fileName);
if (_ptr == IntPtr.Zero)
{
throw new NullReferenceException("Error: Unable to create capture from camera");
}
}
protected override void DisposeObject()
{
base.DisposeObject();
cvReleaseCapture_FFMPEG(_ptr);
}
}
Затем создается объект, используя url-камеры:
private static Capture _cameraCapture;
...
_cameraCapture = new IpCapture("http://webcam.oii.ox.ac.uk/mjpg/video.mjpg");
Ну а дальше работаем как с обычной USB-камерой или видеофайлом.
Sep 3, 2009
Наука: интерполяция сплайнами
Выкладываю пример (Delphi) интерполяции сплайнами. Основан на примерах из книги Мудров А.Е. “Численные методы для ПЭВМ на языках Бейсик, Фортран и Паскаль (Томск, 1991)”
// Пример интерполяции сплайнами
// Игорь Подсекин (wonderu@gmail.com)
// Лицензия LGPL
//
// http://dotnet.wonderu.com
// http://directshow.wonderu.com
program spline;
{$APPTYPE CONSOLE}
type
vec = array[0..100] of Real;
var
i, k, n: Integer;
x1, x0, x9, h, p, p1,p2:Real;
x, f, c: vec;
//Формирование таблицы
procedure Tab(n: Integer; var x, f:vec);
var
i: Integer;
begin
for i := 0 to n do
begin
Write('X', i:2, ',F',i:2,'?');
Readln(x[i], f[i]);
end;
end;
//Расчет коэффициентов сплайна
procedure CalcCoeff(n: Integer; x, f: vec; var c:vec);
var
i, j, m: Integer; a, b, r: Real; k: vec;
begin
k[1] := 0.0; c[1] := 0.0;
for i := 2 to n do
begin
j := i - 1; m := j - 1;
a := x[i] - x[j]; b := x[j] - x[m];
r := 2 * (a + b) - b * c[j];
c[i] := a / r;
k[i] := (3.0 * ((f[i] - f[j]) / a -
(f[j] - f[m]) / b) - b * k[j]) / r;
end;
c[n] := k[n];
for i := n - 1 downto 2 do
c[i] := k[i] - c[i] * c[i + 1];
end;
//Вычисление значения и производной
procedure CalcSpline(n: Integer; x, f, c:vec;
var p, p1, p2: Real; x1: Real);
var
i, j: Integer; a, b, d, q, r: Real;
begin
i := 1;
while (x1 > x[i]) and (i <> n) do
begin
i := i + 1; j := i - 1;
a := f[j]; b := x[j];
q := x[i] - b; r := x1 - b;
p := c[i]; d := c[i + 1];
b := (f[i] - a) / q - (d + 2 * p) * q / 3.0;
d := (d - p) / q * r;
p1 := b + r * (2 * p + d);
p2 := 2 * (p + d);
p := a + r * (b + r * (p + d / 3.0));
end;
end;
begin
Write('n, x0, x9, h?');
Readln(n, x0, x9, h);
Tab(n, x, f);
CalcCoeff(n, x, f, c);
k := Round((x9 - x0) / h + 1.0);
x1 := x0;
for i := 0 to k do
begin
CalcSpline(n, x, f, c, p, p1, p2, x1);
Writeln(x1:5:5, ' ', p:5:5, ' ', p1:5:5, ' ', p2:5:5);
x1 := x1 + h;
end;
readln;
end.
Expression Encoder 3.0 SDK: Вещание в сеть
В продолжение темы: http://dotnet.wonderu.com/2009/07/expression-encoder-30-sdk.html
Пример вещания в сеть видео-аудио потока, используя Microsoft Expression Encoder 3.0 SDK.
#region Copyright
//
// Пример вещания видео-аудио потока, используя Microsoft Expression Encoder 3.0
// Игорь Подсекин (wonderu@gmail.com)
// Лицензия LGPL
// http://dotnet.wonderu.com
// http://directshow.wonderu.com
//
#endregion
using System;
using Microsoft.Expression.Encoder.Live;
namespace Com.Wonderu.Samples.Expression.Encoder
{
/// <summary>
/// Класс вещателя
/// </summary>
public class Broadcaster: IDisposable
{
private LiveJob _job;
/// <summary>
/// Конструктор
/// </summary>
public Broadcaster()
{
_job = new LiveJob();
}
/// <summary>
/// Освобождение.
/// </summary>
public void Dispose()
{
if (_job != null)
_job.Dispose();
}
/// <summary>
/// Старт
/// </summary>
public void Start()
{
if (_job == null)
throw new NullReferenceException("Live Job не существует");
//Выбор устройств
LiveDevice videoDevice = _job.VideoDevices.Count > 0 ? _job.VideoDevices[0] : null ;
LiveDevice audioDevice = _job.AudioDevices.Count > 0 ? _job.AudioDevices[0] : null;
LiveDeviceSource liveSource = _job.AddDeviceSource(videoDevice, audioDevice);
// Активация
_job.ActivateSource(liveSource);
// Создание формата вещания
WindowsMediaBroadcastOutputFormat outputFormat =
new WindowsMediaBroadcastOutputFormat
{
//Порт
BroadcastPort = 8080,
//Максимальное число подключений
MaximumNumberOfConnections = 10
};
// Установка выходного формата
_job.OutputFormat = outputFormat;
// Начало вещания
_job.StartEncoding();
}
/// <summary>
/// Стоп
/// </summary>
public void Stop()
{
if (_job == null)
throw new NullReferenceException("Live Job не существует");
_job.StopEncoding();
}
}
}
}
Ссылка на видео-аудио поток будет следующего вида mms://<server name>:8080.
PKI: Курс "Инфраструктуры открытых ключей"
Jul 31, 2009
Dev Tips: Сборка, упаковка и публикация проектов на FTP
Приведу ниже пример небольшой уловки по сборке и публикации .NET проектов на ваш FTP-сервер. Естественно, с помощью данного метода можно публиковать что угодно.
Метод состоит из 4-х этапов:
- Запуск скрипта publish.bat c параметром – номером сборки;
- Сборка проекта с помощью Visual Studio;
- Упаковка проекта с помощью бесплатного 7zip;
- Публикация архива на ftp.
publish.bat:
rem Удаляем все архивы
del Manager\bin\Release\*.zip
rem Собираем проект
"%VS90COMNTOOLS%..\IDE\devenv" Manager.sln /Rebuild Release
cd Manager\bin\Release
rem Пакуем необходимые файлы в архив с помощью бесплатного 7zip
..\..\..\Utils\7zip\7za.exe a Release%1.zip Test.exe
..\..\..\Utils\7zip\7za.exe a Release%1.zip Manager.exe
..\..\..\Utils\7zip\7za.exe a Release%1.zip template.doc
cd ..\..\..\
rem Запускаем ftp.exe с текущим файлом в качестве параметра
ftp -s:%0.bat
goto done
lcd Manager\bin\Release
open ftp.example.com
user
password
cd /domains/example.com/public_html/MainReleases
prompt
binary
mput *.zip
bye
:done
Удачи :)
Jul 29, 2009
Блог Alex Zambelli: Silverlight, streaming media, Windows Media, VC-1, H.264
Ссылка на блог: http://alexzambelli.com/blog/
Expression Encoder 3.0 SDK: Склеивание медиафайлов
Добрались наконец-то руки до Microsoft Expression Encoder 3.0. Подробнее о продукте можете узнать по ссылке http://blogs.msdn.com/kichinsky/archive/2009/07/23/9846410.aspx .
Советую обратить внимание на .NET API. Он прост и удобен. Приведу небольшой локализованный примерчик из SDK для наглядности:
using System;
using Microsoft.Expression.Encoder;
using Microsoft.Expression.Encoder.Profiles;
namespace MergeMedia
{
/// <summary>
/// Пример последовательного склеивания нескольких медиафайов в один
/// </summary>
class Program
{
/// <summary>
/// Точка входа
/// </summary>
/// <param name="args">аргументы командной строки</param>
static void Main(string[] args)
{
if (args.Length < 2)
{
// Используйте командную строку для задания имен входных медиафайлов
Console.WriteLine("Использование: MergeMedia <MediaFile> <MediaFile> ...");
return;
}
// Создание job и MediaItem для выходного медиафайла
Job job = new Job();
MediaItem mediaItem = new MediaItem(args[0])
{
OutputFormat = new WindowsMediaOutputFormat()
};
// Задание профилей
// Использование видеопрофиля источника, если это возможно
mediaItem.OutputFormat.VideoProfile =
mediaItem.SourceVideoProfile ??
new AdvancedVC1VideoProfile
{
Size = mediaItem.MainMediaFile.VideoStreams[0].VideoSize,
Bitrate = new ConstantBitrate(1000)
};
// Использование аудиопрофиля источника, если это возможно
mediaItem.OutputFormat.AudioProfile =
mediaItem.SourceAudioProfile ?? new WmaAudioProfile();
// Добавление источников
job.MediaItems.Add(mediaItem);
for (int i=1; i<args.Length; i++)
{
mediaItem.Sources.Add(new Source(args[i]));
}
// Установка callback-функции отображения прогресса
job.EncodeProgress
+= OnProgress;
// Задание выходной директории.
job.OutputDirectory = @"C:\output";
// Кодировка
job.Encode();
}
/// <summary>
/// Сallback-функция прогресса
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
static void OnProgress(object sender, EncodeProgressEventArgs e)
{
Console.WriteLine(e.Progress);
}
}
}
Jul 27, 2009
Jul 20, 2009
Jul 13, 2009
Jul 6, 2009
Jun 23, 2009
Cкачать OpenAL
Создатели Firefox о DirectShow
Создатели Firefox делятся своими мыслями о поддержке тега <video> и о том, что DirectShow не будет использоваться для отображения видео в браузере.
PS. Напомню, что DirectShow уже поддерживается браузерами при условии использования JavaFX.
DirectShow: Статус окно Xvid-кодировщика
Отключается это просто:
1. Запускаем Xvid Configure Encoder;
2. Жмем Other Options;
3. Убираем галку Display Encoding Status.
Есть и альтернативный вариант - поправить реестр:
[HKEY_CURRENT_USER\Software\GNU\Xvid]
"display_status"=dword:00000000
Jun 15, 2009
DirectShow: .NET и Windows Mobile
Ссылка: http://alexmogurenko.com/blog/directshownetcf/
Jun 3, 2009
Использование Delphi DSPack + GMFBridge
Jun 1, 2009
How to: создание re-twitter'а
1. Создаем пайп на http://pipes.yahoo.com (это сервис для обработки RSS-потоков)

2. В Fetch Feed вносим все ссылки на RSS-ленты (на странице пользователя Twitter это ссылка вида "RSS feed of
3. Сортируем с помощью Sort;
4. Сохраняем и публикуем;
5. Получившуюся RSS-ленту кормим сервису http://twitterfeed.com/;
6. Радуемся увеличившейся энтропии Вселенной.
May 24, 2009
Удалил старый скрипт на wonderu.com
UPD: Скачать OpenAL
May 18, 2009
May 13, 2009
url4.ru: Гаджет для Google Toolbar

Установить гаджет можно, нажав на кнопку "Добавить кнопку на Google Toolbar" на странице http://url4.ru. Если у вас не установлена панель Google Toolbar, то скачайте ее по адресу: http://toolbar.google.com/.
May 8, 2009
Запуск преальфа-версии сервиса коротких ссылок url4.ru

Настало время рассказать миру о сервисе коротких ссылок url4.ru. Идея сервиса не нова, но в Рунете пока не получила широкого распространения. Суть ее в следующем:
Главная страница url4.ru имеет форму ввода, которая используется для преобразования длинных ссылок в короткие. Каждому введенному адресу сервер создает соответствие с коротким идентификатором и возвращает короткую ссылку, например, вводим http://ru.wikipedia.org/wiki/Заглавная_страница и получаем на выходе короткую ссылку http://url4.ru/5q.
Если адрес уже есть в БД, то возвращается существующий идентификатор и копия не создается, при этом свой алиас (см. ниже) игнорируется. Нажав на короткую ссылку http://url4.ru/5q, мы переходим на первоначальную страницу http://ru.wikipedia.org/wiki/Заглавная_страница.
Система позволяет также использовать алиасы - собственные дружественные имена, например, ссылка на английскую Википедию выглядит так http://url4.ru/wikipedia, т.к. при ее создании был указан алиас wikipedia.
url4.ru имеет простейший API для создания ссылок внешними приложениями. Для этого необходимо лишь отправить POST запрос с двумя полями:
urlText=<ссылка>Несколько сервисов уже начали интегрировать данный API в свои веб-приложения. Помните, что через API алиас задать нельзя.
source=api
Короткие ссылки полезны, т.к. легко пишутся и запоминаются, также очень трудно ошибиться при диктовке ссылки по телефону. Полезно использовать короткие ссылки на визитках, если хотите задать на карте расположение своей фирмы, полагаю, что ссылка вида http://url4.ru/5s, лучше будет смотреться нежели http://maps.yandex.ru/?text=%D0%92%D0%BE%D0%BB%D0%BE%D0%BA%D0%BE%D0%BB%D0%B0%D0%BC%D1%81%D0%BA%D0%BE%D0%B5%20%D1%88%D0%BE%D1%81%D1%81%D0%B5%2C%204&sll=37.503208%2C55.807936&sspn=0.001%2C0.001&ll=37.504106%2C55.807521&z=17&l=sat. Ну и конечно же, короткую ссылку очень просто и экономно отправить по SMS.
Почему нужно пользоваться именно сервисом url4.ru?
1. Удобно!
2. Все по-русски!
3. QR-коды, которые позволяют открыть ссылку на мобильном телефоне, просто сфотографировав небольшой штрих код! Вот видео запись примера.
4. Наличие ускорителя для Internet Explorer 8. Добавив его с главной страницы url4.ru, вы сможете создавать короткие ссылки прямо из контекстного меню браузера!
5. Удобный API!
6. Открытость разработчиков к новым и интересным предложениям!
Удачи!
May 5, 2009
May 3, 2009
May 2, 2009
J2ME: Domain Checker - мобильная проверка доменов

Требования к телефону:
1. Поддержка Java;
2. Настроенный WAP/GPRS.
Ссылка на jar-файл: http://url4.ru/55
Можете также открыть ссылку с помощью QR-кода:

Хотелось бы услышать от вас отзывы и предложения, а также модель вашего телефона и замечания по работоспособности приложения на нем.
May 1, 2009
Работа с графами и их визуализация (.NET, C#)
Алгоритм внедрения в .NET приложение следующий:
1. Используя пространства имен QuickGraph и QuickGraph.GraphViz, формируем граф и записываем его в файл .dot. Также можно отсортировать граф топологически, это полезно для выявления последовательности выполнения связанных процессов, например, у нас в пакете 20 сборок, и нам нужно откомпилировать все, учитывая связи между сборками. Отсортировав топологически, мы можем найти последовательность компиляции всех сборок.
2. С помощью командной утилиты из dot.exe из пакета GraphViz формируем png-файл и отображаем в своем приложении.
Все просто :) В результате получаем изображение графа с автоматической расстановкой связей и элементов.
Добавлю, что с помощью dot.exe можно экспортировать в другие форматы, например, SVG, GIF, JPEG. У себя мы использовали следующую связку PNG + CMAP карта изображения для тега img. Таким образом, мы получали автоматически сформированное интерактивное изображение процесса с подсказками и ссылками в нашем ASP.NET приложении.
Ниже пример построения графа последовательности одевания человека (C#):
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using QuickGraph;
using QuickGraph.Algorithms;
using QuickGraph.Graphviz;
using System.Drawing;
using System.Diagnostics;
namespace gr
{
class Program
{
static void Main(string[] args)
{
var g = new AdjacencyGraph<string, TaggedEdge<string, string>>();
g.AddVertex("Часы");
g.AddVertex("Носки");
g.AddVertex("Туфли");
g.AddVertex("Трусы");
g.AddVertex("Брюки");
g.AddVertex("Рубашка");
g.AddVertex("Ремень");
g.AddVertex("Галстук");
g.AddVertex("Пиджак");
g.AddEdge(new TaggedEdge<string, string>("Носки", "Туфли", "a"));
g.AddEdge(new TaggedEdge<string, string>("Трусы", "Туфли", "s"));
g.AddEdge(new TaggedEdge<string, string>("Трусы", "Брюки", "d"));
g.AddEdge(new TaggedEdge<string, string>("Брюки", "Туфли", "f"));
g.AddEdge(new TaggedEdge<string, string>("Брюки", "Ремень", "g"));
g.AddEdge(new TaggedEdge<string, string>("Рубашка", "Ремень", "h"));
g.AddEdge(new TaggedEdge<string, string>("Рубашка", "Галстук", "j"));
g.AddEdge(new TaggedEdge<string, string>("Галстук", "Пиджак", "k"));
g.AddEdge(new TaggedEdge<string, string>("Ремень", "Пиджак", "l"));
foreach (var elem in g.TopologicalSort<string, TaggedEdge<string, string>>())
{
Console.WriteLine(elem);
}
var graphViz = new GraphvizAlgorithm<string, TaggedEdge<string, string>>(g, @".\", QuickGraph.Graphviz.Dot.GraphvizImageType.Png);
graphViz.FormatVertex += FormatVertex;
graphViz.FormatEdge += FormatEdge;
graphViz.Generate(new FileDotEngine(), "ww");
Console.ReadLine();
}
private static void FormatVertex(object sender, FormatVertexEventArgs<string> e)
{
e.VertexFormatter.Label = e.Vertex;
e.VertexFormatter.Shape = QuickGraph.Graphviz.Dot.GraphvizVertexShape.Box;
e.VertexFormatter.StrokeColor = Color.Yellow;
e.VertexFormatter.Font = new Font(FontFamily.GenericSansSerif, 12);
}
private static void FormatEdge(object sender, FormatEdgeEventArgs<string, TaggedEdge<string, string>> e)
{
e.EdgeFormatter.Head.Label = e.Edge.Target;
e.EdgeFormatter.Tail.Label = e.Edge.Source;
e.EdgeFormatter.Font = new Font(FontFamily.GenericSansSerif, 8);
e.EdgeFormatter.FontColor = Color.Red;
e.EdgeFormatter.StrokeColor = Color.Gray;
}
}
}
digraph G { 0 [color="#FFFF00FF", fontsize=12, label="Часы", shape=box, fontname="Microsoft Sans Serif"]; 1 [color="#FFFF00FF", fontsize=12, label="Носки", shape=box, fontname="Microsoft Sans Serif"]; 2 [color="#FFFF00FF", fontsize=12, label="Туфли", shape=box, fontname="Microsoft Sans Serif"]; 3 [color="#FFFF00FF", fontsize=12, label="Трусы", shape=box, fontname="Microsoft Sans Serif"]; 4 [color="#FFFF00FF", fontsize=12, label="Брюки", shape=box, fontname="Microsoft Sans Serif"]; 5 [color="#FFFF00FF", fontsize=12, label="Рубашка", shape=box, fontname="Microsoft Sans Serif"]; 6 [color="#FFFF00FF", fontsize=12, label="Ремень", shape=box, fontname="Microsoft Sans Serif"]; 7 [color="#FFFF00FF", fontsize=12, label="Галстук", shape=box, fontname="Microsoft Sans Serif"]; 8 [color="#FFFF00FF", fontsize=12, label="Пиджак", shape=box, fontname="Microsoft Sans Serif"]; 1 -> 2 [ fontsize=8, fontcolor="#FF0000FF", color="#808080FF", taillabel="Носки", fontname="Microsoft Sans Serif", headlabel="Туфли"]; 3 -> 2 [ fontsize=8, fontcolor="#FF0000FF", color="#808080FF", taillabel="Трусы", fontname="Microsoft Sans Serif", headlabel="Туфли"]; 3 -> 4 [ fontsize=8, fontcolor="#FF0000FF", color="#808080FF", taillabel="Трусы", fontname="Microsoft Sans Serif", headlabel="Брюки"]; 4 -> 2 [ fontsize=8, fontcolor="#FF0000FF", color="#808080FF", taillabel="Брюки", fontname="Microsoft Sans Serif", headlabel="Туфли"]; 4 -> 6 [ fontsize=8, fontcolor="#FF0000FF", color="#808080FF", taillabel="Брюки", fontname="Microsoft Sans Serif", headlabel="Ремень"]; 5 -> 6 [ fontsize=8, fontcolor="#FF0000FF", color="#808080FF", taillabel="Рубашка", fontname="Microsoft Sans Serif", headlabel="Ремень"]; 5 -> 7 [ fontsize=8, fontcolor="#FF0000FF", color="#808080FF", taillabel="Рубашка", fontname="Microsoft Sans Serif", headlabel="Галстук"]; 6 -> 8 [ fontsize=8, fontcolor="#FF0000FF", color="#808080FF", taillabel="Ремень", fontname="Microsoft Sans Serif", headlabel="Пиджак"]; 7 -> 8 [ fontsize=8, fontcolor="#FF0000FF", color="#808080FF", taillabel="Галстук", fontname="Microsoft Sans Serif", headlabel="Пиджак"]; }
Формируем изображение с помощью dot.exe:
dot -T png ww.dot > ww.png
Итоговое изображение:

Apr 27, 2009
Apr 16, 2009
Моделирование падения в черную дыру
Увлечение черными дырами у меня началось еще в школе. В 97-году я выступал на собрании школьного научного общества с докладом “Черные дыры”. К сожалению, в нашем маленьком городке тогда литературы было крайне мало, поэтому пришлось перерыть все библиотеки в округе.
Увлечение этими странными объектами Вселенной осталось и поныне. Любая новость меня приводит чуть ли не в восторг :) Вот последнее, что попалось на глаза:
Астрономы смоделировали то, что предстанет перед глазами человека, падающего в черную дыру.
С исследованием вы можете ознакомиться на сайте Inside Black Holes. Меня порадовало предупреждение:
Вольный перевод:
Предупреждение: Если вы упадете в черную дыру, то погибните. Вы не попадете через нее в другое время и пространство.
Mar 28, 2009
MS Word: Ссылки на рисунки
Структурная схема системы представлена на следующем рисунке (см. Рисунок 36)
"Рисунок 36" - является полем и отредактировать его не удасться, поэтому приходится извращаться и пытаться приспосабливать предложение под именительный падеж поля. Наиболее простым решением мне видится сокрытие текста "Рисунок ". Т.е. пишем текст:
Структурная схема системы представлена на рисунке Рисунок 36
Для этого выделяем "Рисунок ", нажимаем правой кнопкой по выделенному участку, выбираем меню Font... (Шрифт...). Дальше выбираем опцию hidden (скрытый). После этого текст скрытый текст подчеркнется
Структурная схема системы представлена на рисунке Рисунок 36
, а при печати его вообще видно не будет:
Структурная схема системы представлена на рисунке 36
Mar 19, 2009
Новая проблема: Internet Explorer 8
Коллега интересную мысль подал. Теперь требование заказчика к сайту: "IE6+" - принесет веб-программистам еще больше головной боли. Я бы сказал, что процентов так на 50 :)
Удачи, коллеги по несчастью ;)
Mar 13, 2009
MS SQL Server: sp_sproc_columns, sp_sproc_columns_90 и varchar(max)
Mar 3, 2009
Windows 7 beta: первые критические ошибки
Feb 26, 2009
Формулы конвертации RGB<-->YUV
G = Y - (0.3455 * (U - 128) - (0.7169 * (V - 128));
B = Y + (1.7790 * (U - 128);
Y = R * .299 + G * .587 + B * .114;
U = R * -.169 + G * -.332 + B * .500 + 128.;
V = R * .500 + G * -.419 + B * -.0813 + 128.;
Feb 16, 2009
Free SVN Hosting - бесплатный хостинг SVN
- http://unfuddle.com/
- http://xp-dev.com/ (судя по заявленным опциям - самый лучший хостинг)
- http://www.codespaces.com
- http://cvsdude.com (несерьезно, всего 2 Мб)
Feb 5, 2009
Windows 7: Настройка AVerMedia AVerTV 307
1. Поставил Windows 7
2. Естественно нет ПО и драйверов для ТВ-тюнера AVerMedia AVerTV 307, в результате он даже не обнаруживается.
Решение:
1. Ставим программу AVerTV 6.3.0 (ищем на http://www.avermedia.com/avertv/ru/Support/Download.aspx?Type=APDriver)
2. Запускаем: звук есть, а вот картинки нет.
3. Добавляем настройки в секцию [AVerMedia M151 PCI Analog] файла C:\Users\Ваш_Пользователь\Documents\AverTV\ Ваш_Пользователь.ini:
Brightness=128
BrightnessVMR=128
Contrast=68
ContrastVMR=68
EnableBrightness=1
EnableContrast=1
EnableGain=1
EnableSaturation=1
Gain=144
Saturation=64
SaturationVMR=64
Решение найдено здесь.
Windows Media Center не заработал, говорит, что нет тюнера. Может кто решил эту проблему?
Feb 1, 2009
киберсквоттеры и до меня добрались
Jan 19, 2009
Jan 11, 2009
Windows 7: Обновление Media Foundation
- Улучшенная поддержка форматов, включая MPEG-4
- Поддержка устройств захвата и аппаратных кодеков
- Упрощенная модель программирования
- Улучшения в платформе
- AVI/WAVE file source
- MP4/3GP file source
- MP4/3GP file sink
- DV video decoder
- H.264 video decoder
- MJPEG decoder
- ASF streaming sink
- MP3 file sink (не включает MP3-кодер).
- UVC 1.1 устройства видеозахвата, например, веб-камеры
- Устройства аудио-захвата
- Аппаратные кодеры и декодеры
- Аппаратные видео-процессоры, например, преобразователи цветового кодирования
DirectShow форум: обновление

Обновился "DirectShow форум" http://forum.wonderu.com.
[+] Появилась поддержка RSS. Теперь можно подписаться на темы
или на все сообщения форума;
[*] Исправлена ошибка "обрушения" дизайна форума при заходе
неаутентифицированным пользователем под IE или FireFox.