мое имхо. Телестанция вещает со своим строго заданным fps. Она время считает по своим часам, у нее выходит четко сколько положено кадров в секунду (будем считать что ровно 25). После каждого кадра идет синхросигнал.
Теперь берем тюнер и софт. Если софт собрался писать AVI, то у этого контейнера должен быть четко заданный fps сразу (в отличие от mpeg2 или wmv/asf).
Тюнер точно не знает с какой частотой идет сигнал, он это может понять только по синхроимпульсам. Если сигнал хороший - импульсы четкие, тюнер не ошибется. Если плохой, то за импульс может приниматься и левые сигналы. Это первое место где будут появляться или исчезать телекадры.
Дальше - положим, что мы угадали точный fps, пишем. Но еще ведь есть и звук. Который цифруется непрерывно, безо всяких там импульсов. Кварц, по которому идет отсчет времени, у звуковухи - свой. Который, естественно, идет своим путем, убегая/отставая от того что на матери на 1 процент в час, например (по разному бывает, даже от температуры воздуха внутри компа зависит).
Чтоб совсем на пальцах - в AVI файле будет звука и видео на разную длительность по времени. Если в уже записанном файле поменять fps на более соответствующий или частоту оцифровки звука (VDub позволяет), то получим файл, который одинаково звучит в начале и конце. Но внутри может быть каша, вызванная тем, что 2 клока (звуковухи и матери) сначала отличались в одну сторону, а потом в другую, или разница была нелинейной.
Решений тут несколько может быть.
1. использовать железки который цифруют видео и звук, сидя на одном клоке.
2. использовать форматы файлов без жесткого fps (asf/mpeg2/matroska/ogg). Тогда видео кадры просто привязывается к соответстующим аудиосамплам и - готово.
3. во время захвата с четким fps подкручивать видео поток, добавляя/удаляя видео кадры руками, опираясь на разницу в двух клоках - ее можно вычислить, посчитав за какое время в материнских клоках приходит 1 секунда звука, который всегда в фиксированном рейте идет.
Добавление от 25.03.2005 17:43:
LegoА что будет если для ТВ я ей скажу: 1) 15кадров ? 2) 30 кадров?
Сколько она хавать будет?Драйвера попытаются пересчитать fps. Делают они это чаще всего криво.