Форум Beholder
http://beholder.ru/bb/

Захват и сжатие на лету в h264
http://beholder.ru/bb/viewtopic.php?f=9&t=8749
Страница 1 из 2

Автор:  YURETS [ 20 дек 2009, 19:09 ]
Заголовок сообщения:  Захват и сжатие на лету в h264

Пробовал сделать захват бехолдером в AVI с кодеком h264 (ffmpeg 264 + ac3)
Самое интересное что захват и сжатие выполнялись на 4-ядернике C2 QUAD 2.4 и загрузка процессора не превышала 30 процентов, НО в захвате пошли пропущенные кадры? причем более 10-ти процентов.

Вопрос - как задействовать в сжатии все 4 ядра, чтобы не было пропущенных кадров, и есть ли возможность при сжатии использовать CUDA ?

Автор:  Maxch5 [ 20 дек 2009, 19:52 ]
Заголовок сообщения: 

Если я не ошибаюсь CUDA это кодирование видушкой, Для этого нужен специальный кодек с поддержкой этого CUDA(посмотри на сайте производителя).

Насчет распределения по ядрам, также нужны специальные кодеки с поддержкой много поточного кодирования(Для ави вряд ли такие есть, там нельзя разбить кадр на части или распределять кадры целиком).

Автор:  YURETS [ 20 дек 2009, 22:49 ]
Заголовок сообщения: 

А может ли бехолдер хватать в mkv, ts/mts/m2ts или в mp4 ?

Автор:  Maxch5 [ 21 дек 2009, 00:25 ]
Заголовок сообщения: 

Тюнеру всё равно, главное чтобы нужный кодек стоял(полный кодек с Декодером и Энкодером)

Автор:  Yoda [ 21 дек 2009, 14:24 ]
Заголовок сообщения: 

писал(а):
Тюнеру всё равно, главное чтобы нужный кодек стоял

Ты опять, вот уже в который раз, массово вводишь людей в заблуждение. Нехорошо так поступать.

Автор:  samfednik [ 21 дек 2009, 16:06 ]
Заголовок сообщения:  Re: Захват и сжатие на лету в h264

писал(а):
Пробовал сделать захват бехолдером в AVI с кодеком h264 (ffmpeg 264 + ac3)
Самое интересное что захват и сжатие выполнялись на 4-ядернике C2 QUAD 2.4 и загрузка процессора не превышала 30 процентов, НО в захвате пошли пропущенные кадры? причем более 10-ти процентов.

Попробуйте захватывать x264vfw, отлично справляется без пропуска кадров, как пишет Бехолдеровский лог файл. На самом деле, при открытии в VirtualDube, всегда пропущенны первые 4 кадра (по-крайней мере у меня). С чем это связано - непонятно, но их можно удалить до первого ключевого кадра и затем прогнать прямопотоковым копированием.

Изображение

На 3-ей вкладке: Rate control & Other надо поставить в Multithreading (многопоточность) -> Thread = 0 (получите режим авто-определение).

писал(а):
А может ли бехолдер хватать в mkv...

Смысла сразу захватывать в этот контейнер нет, быстро без кодирования в mkv муксит программа MKVmerge GUI.

Автор:  YURETS [ 23 дек 2009, 10:28 ]
Заголовок сообщения: 

Попробовал, правда на 2-х ядернике, загрузка 100 процентов, но пропусков уже значительно меньше, теперь нужно попробовать на 4-ядернике

Автор:  YURETS [ 23 дек 2009, 10:29 ]
Заголовок сообщения: 

ЗЫ
Интересно, планируется ли в бехолдере прикрутить аппаратное сжатие в 264 ?
Если бы такое было, без вопросов купил бы новый тюнер.

Автор:  samfednik [ 23 дек 2009, 22:25 ]
Заголовок сообщения: 

Если проц не справляется попробуйте снизить его загрузку записывая звук в РСМ формате(без сжатия). Вся его работа пойдёт на обработку видео. (Для 2-х ядреного проца)

Автор:  Maxch5 [ 24 дек 2009, 00:02 ]
Заголовок сообщения: 

Посмотри еще одну штуку:
В диспетчере задач правым кликом по процессу и выбери "задать соответствие...", это разрешение процессу выполнятся на определённом ядре.

Автор:  EugeneF [ 24 дек 2009, 01:54 ]
Заголовок сообщения: 

Это только сократит производительность в два раза...

Автор:  DOSMOD [ 20 мар 2010, 20:08 ]
Заголовок сообщения: 

после удаления эти 4х кадров заметно смещается звук
можно ли чтото сделать в виртуалдубе?

Автор:  samfednik [ 20 мар 2010, 21:33 ]
Заголовок сообщения: 

Конечно можно. В Virtualdube на закладке Аудио -> Чередование (Interleaving) задаёте смещение:

Изображение

Автор:  DOSMOD [ 21 мар 2010, 10:17 ]
Заголовок сообщения: 

при открытии записано фала в Virtualdube появляется вот такое сообщение:
Код:
[!] AVI: Stream 0 (video) has a non-zero start position of 2 samples (+80 ms).
    VirtualDub does not currently support a non-zero start time and the stream
    will be interpreted as starting from zero.

и естественно при воспроизвидении звук опережает видео
после удаления первых 4х кадров пробовал в окне Interleaving добавлять эти 80мс но это нечего не дало, звук всеарвно опережает...

Автор:  samfednik [ 21 мар 2010, 23:47 ]
Заголовок сообщения: 

Ничего страшного в этом сообщении нет.

писал(а):
после удаления первых 4х кадров пробовал в окне Interleaving добавлять эти 80мс но это ничего не дало, звук все-равно опережает...

Почему именно 80мс добавляете? Пробуйте другие значения, пока не обеспечите синхронность, тем более в самом Virtualdube сразу и смотрите, чтобы была синхронность (Enter - фильтрованный просмотр).
Ещё проще открыть видео сначала в Media Player Classic, и нажимая (+ или -) на доп. цифровой клавиатуре определить аудио задержку, а потом это значение прописать в Virtualdube.
Вы поймите, что не после удаления 4-х первых кадров у вас происходит рассинхронизация видео с аудио потоком (т.к. Virtualdub вырезает видео вместе с аудио), а из-за того, что сам контейнер AVI проблематичный в этом плане.

Справка:
По мере возможности, старайтесь не делать захват в AVI, со сжатием аудио на лету. Это грозит рассинхронизацией видео и аудио потоков, либо при использовании некоторых аудиокодеков, может вызвать внезапную остановку записи. Используйте аппаратный формат аудио - PCM.

P.S.: Удачи!

Страница 1 из 2 Часовой пояс: UTC + 3 часа