Имелись видеокассеты vhs с домашними съёмками, которые решено было перевести их на dvd mpeg2 в linux.
Поиск в интернете сразу дал следующую статью.
http://forum.videohelp.com/topic307679.htmlВопрос можно было бы закрыть, если бы не глюки выходного файла. Видео дергалось, звуки хрюкали, наблюдались прочие эффекты. Налицо недостаточная производительность компа.
Поэтому следующие изыскания для тех у кого не очень мощные машины.
Исходные данные.
Процессор Athlon 4200+, 2 гига ram, hard 300 гигов sata 2, тюнер Aver St 507, sound m-audio revolution 5.1
Перво-наперво втыкаем кабеля. Для захвата видео лучше всего использовать интерфейс s-video, однако такового не оказалось в видаке, поэтому применялся обычный композитный.
Для аудио, если у вас не профессиональная звуковая карта, понадобится переходник rca-mjak. Если видак не стерео, то втыкаем в левый канал.
Врубаем видак, врубаем колонки, запускаем tvtime.
Убеждаемся, что картинка пошла.
Врубаем alsamixer, настраиваем вход Line in на оптимальную громкость.
Выбираем его дефолтным на захват (capture — line in).
Для контроля звука на колонки, включаем loopback.
Картинка, звук есть? Идем дальше.
Глюки с видео наблюдались, из за нехватки мощности проца, первая идея, кидать на жесткий диск видео не пожатым, но и это не выход.
Скорость передачи данных уходит далеко за сотку мегабит, хард не успевает писать, наблюдаются выпадения кадров. Плюс видео начинает занимать немерено места.
Надо бы его слегка пожать. Для этого воспользуемся видеокодеком без потерь - ffvhuff.
Формируем следующую строчку.
mencoder -ovc lavc -lavcopts vcodec=ffvhuff:threads=2 -oac pcm -tv driver=v4l2:input=1:width=352:height=576:alsa -o out.avi tv://
Некоторые пояснения:
threads=2 — кодирование в 2 потока на 2 ядра.
-oac pcm — звук кидаем несжатым, пишем 1 канал (левый или правый). Можно принудительно выставить цифровать в моно, но приводило к тормозам.
width=352:height=576: - разрешение хватаемой картинки.
В результате поток на хард уменьшился до 40 мегабит, что вполне прокачивают любые современные харды. Плюс проц успевает жать данные.
Около часа видео заняло 20 гигов. Периодически менкодер ругался на дропнутые кадры, но конечный результат, выглядел нормально. Звук не отстает и тд.
Далее нам надо продублировать аудио с левого канал на правый.
Делаем.
mencoder out.avi -oac pcm -ovc copy -af channels=2:2:0:0:0:1 -o out3.avi
В рузультате, получаем двойное mono.
И наконец окончательное сжатие.
mencoder out3.avi -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd -vf pp=ci/ha/va/dr,hqdn3d,harddup -srate 48000 -af lavcresample=48000 -lavcopts vcodec=mpeg2video:vrc_buf_size=1500:vrc_maxrate=8000:vbitrate=7000:keyint=15:acodec=mp2:abitrate=192:aspect=4/3:threads=2 -o video.mpg
-vf pp=ci/ha/va/dr,hqdn3d,harddup — это различные полезные видеофильтры, шумодав и прочие.
В принципе можно провести, дублирование каналов и пережатие одной командой, но у меня это приводило к писку по аудио, поэтому так )))
Делаем простейший dvdСтавим dvdauthor
Скидываем куда-нибуть получившийся video.mpg, там же создаем диру out и файлик video.xml со следующим содержанием.
<dvdauthor>
<vmgm />
<titleset>
<titles>
<pgc>
<vob file="video.mpg" />
</pgc>
</titles>
</titleset>
</dvdauthor>
Даем команду
dvdauthor -o out -x video.xml
В директории out появится структура, которую можно записать на dvd.