LINUX.ORG.RU

plz покритикуйте алгоритм преобразования: TVtuner -> ffmpeg -> mplex -> DVD Video


0

0

До недавнего времени не имел дела с видеозахватом и его обработкой. Требуется опытный взгляд гуру на алгоритм перевода видеосигнала с ТВтюнера на формат DVDVideo (c возможностью просмотра на бытовом DVD плейере).


Мои опыты с transcode'ом были печальны - 4 минутный ролик доводился до ума DVD проигрывателя около часа (PIV 2.4) Путём проб и ошибок выкристализовалась такая метода:


ffmpeg -f mjpeg -an -s 720x576 -vcodec mpegvideo -b 2500 -r 50 -deinterlace -aspect 4:3 -y dvdvideo.mjpeg -acodec ac3 -ac 2 -ab 128 -ar 48000 -y dvdaudio.ac3

mplex -f 8 -o dvdoutput.mpg dvdvideo.mjpeg dvdaudio.ac3

Имеем ли мы в результате готовый к прожигу клип, который сможет скушать DVD проигрыватель? Дело в том, что на выходе я получаю фпс=50. Все мои попытки свести фпс до 25 в финальном файле приводили лишь к дискретному видео. Как это можно побороть (и надо ли?)

anonymous

Критикуем. ;)

1. С ТВ-тюнера, ИМХО, нет никакого смысла лепить DVD. Возможности формата SVCD и то не на полную катушку будут задействованы. А DVD-плеер, который не умеет играть SVCD -- либо был выпущен 20 лет назад, либо подлежит дарению бомжам.

2. На кой икс там ac3??? Откуда с тюнера такой звук? Стерео -- ещё поверю, и то выше 128kbps нет смысла кодировать.

3. С какого источника хватаете? С VHS? С эфира?

Некоторая информация о наиболее качественном захвате (наилучший вообще метод с внешним DV-оцифровщиком типа Pinnacle Moviebox DV или Canopus ADVC-100/55 я пока не рассматриваю) -- в конце странички: http://www.bog.pp.ru/dw/mmsoft.html.

Скрипты кодирования в SVCD лежат на http://lor-tips.nm.ru.

Obidos ★★★★★
()
Ответ на: комментарий от Obidos

Спасибо за критику :)

>1. С ТВ-тюнера, ИМХО, нет никакого смысла лепить DVD. Возможности
>ормата SVCD и то не на полную катушку будут задействованы. А
>DVD-плеер, который не умеет играть SVCD -- либо был выпущен 20 лет
>назад, либо подлежит дарению бомжам.

SVCD это максимум 70мин видео+ в нелучшем качестве. DVD ~ 3.5ч (c бОльшим разрешением и качеством). Или я не прав?


>2. На кой икс там ac3??? Откуда с тюнера такой звук? Стерео -- ещё
>поверю, и то выше 128kbps нет смысла кодировать.

Согласен. Можно поправить в mp2 (mp3 не везде поддерживается?)


>3. С какого источника хватаете? С VHS? С эфира?

C эфира.



Вот мои резоны в пользу жарки DVD (не флейма ради).

- Объем.
Тут добавить нечего.

- Меньше возни.
Зажимать 2х часовой фильм с 18 фпс это не для слабонервных. Описанный алгоритм позволяет скидывать на двд болванку запись эфира почти сразу после захвата.

Цены падают. Болванки дешевеют. Имеет ли смысл сидеть на старых технологиях?

anonymous
()
Ответ на: комментарий от anonymous

Хм, с эфира...

Рекламу резать надо? Надо. Начало/конец подровнять надо? Надо. Стало быть, хватать надо либо в DV, либо в mjpeg/huffyuv с максимальным качеством, либо raw (то есть в форматы, пригодные для монтажа, то бишь в форматы, в которых каждый кадр кодируется независимо от остальных, стало быть, mpeg и divx идут лесом).

Далее, 576 по вертикали -- это интерлейснутое видео. После деинтерлейса будет 288.

> DVD ~ 3.5ч (c бОльшим разрешением и качеством). Или я не прав?

Неправ. Источник в данном случае -- дерьмо (эфир). На DVD можно писать видео и другого разрешения (перечень смотреть лениво). Единственное преимущество DVD в данном случае -- объём. Качество же -- отстой, хоть тресни (ибо эфир, с VHS будет ещё хуже).

> Зажимать 2х часовой фильм с 18 фпс это не для слабонервных

Ну, я с 6-7fps AVI->SVCD жму (PIII-1333). Утром поставил, к обеду или к окончанию рабочего дня готово.

> Описанный алгоритм позволяет скидывать на двд болванку запись эфира почти сразу после захвата.

Типичная ошибка. Забыл про монтаж (см. выше). Или не стыдно показывать фильм с мусором в начале, рекламой памперсов и т.п. прелестями ТВ?

P.S. Купил как-то фильм "Классик" на DVD (ну, думаю, нормально посмотрю, фильм хороший, а то на кассете дрянь какая-то). И что там? Совершенно верно, кривая оцифровка с НТВ (даже логотип не убрали, криворукие). Хорошо, продавец вменяемый, после слов "эфирка" покраснел, извинился ("обычно я тряпками и эфирками не торгую") и молча принял отстой назад.

Obidos ★★★★★
()
Ответ на: комментарий от Obidos

Скоро, скоро Чемпионат Европы по футболу... :)

Vlog
()
Ответ на: комментарий от Obidos

>Рекламу резать надо? Надо. Начало/конец подровнять надо? Надо. Стало
>быть, хватать надо либо в DV, либо в mjpeg/huffyuv с максимальным
>качеством, либо raw (то есть в форматы, пригодные для монтажа, то бишь
>в форматы, в которых каждый кадр кодируется независимо от остальных,
>стало быть, mpeg и divx идут лесом).

я пользую avidemux2. Вроде режет "по живому" нормально. Нужно на большом объеме потестить.

>Далее, 576 по вертикали -- это интерлейснутое видео. После
>деинтерлейса будет 288.

Тут я слаб пока в терминах. Но xine выдает MPEG 720x576.


>Ну, я с 6-7fps AVI->SVCD жму (PIII-1333). Утром поставил, к обеду или
>к окончанию рабочего дня готово.

В моём случае - 4 минуты и готово.


С "экранками" на ДВД пока не встечался - повезло, хотя кое-какой набор ДВД имею. Хороший фильм посмотреть в оригинале/c cубтитрами одно удовольствие. Соглашусь с Гоблином - плохой дубляж может испортить любой шедевр кинематографии.

anonymous
()
Ответ на: комментарий от anonymous

> я пользую avidemux2. Вроде режет "по живому" нормально

Смотря что. С mpeg/divx -- как только мимо keyframe промахнётесь -- увидите... После пережатия в MPEG -- красивый цветной "квадратиш, практиш, гут, мля". Хотя если режете не с точностью до фрейма -- нет проблем.

> Хороший фильм посмотреть в оригинале/c cубтитрами одно удовольствие

Тот фильм, про который я говорил -- наш, отечественный. А вот про то, что "импортное" кино нужно смотреть только с "родной" звуковой дорожкой (если слабоват в языке -- с субтитрами) -- согласен. Иной раз у нас так "переведут"... Ещё больший кретинизм "лицензионщиков" (в сортире мочить за такое надо) -- неотключаемые субтитры. Вот и приходится демонстративно брать пиратку, даже когда денег на фильм не жалко.

Obidos ★★★★★
()
Ответ на: комментарий от Obidos

>Смотря что. С mpeg/divx -- как только мимо keyframe промахнётесь --
>видите... После пережатия в MPEG -- красивый цветной "квадратиш,
>рактиш, гут, мля". Хотя если режете не с точностью до фрейма -- нет
>проблем.

Можно и так. А можно перед mplex просмотреть видеопоток, засечь время рекламы и занести в таблицу, с которой будет работать простой скриптик, нарезающий из видео- и аудиопотоков материал, свободный от рекламы. В результате мы получим несколько файлов, из которых можно сделать главы DVD, например. Имхо, по-любому пережимать по нескольку раз видеопоток слишком муторно.

Кстати, есть какая-нибудь софтина, которая режет мпег по кейфреймам безболезненно? avidemux2 всё-таки глюковата.

anonymous
()
Ответ на: комментарий от anonymous

> А можно перед mplex просмотреть видеопоток, засечь время рекламы и занести в таблицу

Превосходно. А что, если новая глава начинается не с кейфрейма? Резать кусок фильма до первого кейфрейма? Извините, но это бред (а иначе будет квадратиш от начала главы до первого кейфрейма).

> софтина, которая режет мпег по кейфреймам безболезненно

Всё-таки захват делаете сразу в mpeg... Всё, что я говорил про монтаж и почему не надо хватать сразу в mpeg/divx, впустую...

mpeg1/2/4, divx, xvid и т.д. -- форматы __не__для__редактирования__ и не для исходного материала, это форматы исключительно конечного готового продукта. Увы, но это азы видео.

P.S. Есть три понятия: дёшево, быстро, качественно. Но в решении задачи могут встретиться лишь два из них, третье понятие встречается в противоположном смысле.

Obidos ★★★★★
()
Ответ на: комментарий от Obidos

>Превосходно. А что, если новая глава начинается не с кейфрейма? Резать
>кусок фильма до первого кейфрейма? Извините, но это бред (а иначе
>будет квадратиш от начала главы до первого кейфрейма).

Ну почему же сразу "бред"? Например, mplex может делать самостоятельные mpegи заданной величины. Но, вожможно это тупиковый путь.

>Всё-таки захват делаете сразу в mpeg... Всё, что я говорил про монтаж
>и почему не надо хватать сразу в mpeg/divx, впустую...

Ну почему же впустую? :-/

Ладно, пошел изучать азы.

anonymous
()
Ответ на: комментарий от anonymous

> Ну почему же сразу "бред"?

Потому что если реклама кончается так, что продолжение фильма не попадает на кейфрейм, то придётся либо оставить кусок рекламы, либо отрезать кусок фильма. Если вас это устраивает, пожалуйста.

Без монтажа можно разве что с DVD рип делать или пережимать скачанные avi-шки в SVCD/DVD.

Obidos ★★★★★
()
Ответ на: комментарий от Obidos

>Потому что если реклама кончается так, что продолжение фильма не
>попадает на кейфрейм, то придётся либо оставить кусок рекламы, либо
>отрезать кусок фильма. Если вас это устраивает, пожалуйста.

Ну, если принять, что GOP (и число можно настраивать) в среднем занимает половину секунды, то вполне устраивает. Тут имхо вообще спорить бесполезно. За такое время ничего существенного в материале не произойдёт. В крайнем случае без куска фильма в полсекунды (на самом деле меньше: 0.5c = movie + spam) можно жить.

Качество ТВ, как Вы правильно заметили, не супер. Зачем тратить на откровенную возьню с некачественным материальм столько времени? Реклам а достаточно легко вырезаетстся GOP редакторами. Минус - они не для всех подойдут, и пока нестабильны (те, которые я пробовал). Ну так это как раз тот случай, когда концепция отрытого кода рулит.


Короче, "если нельзя, но очень хочется, то можно."


Итак, алгоритм такой:
TV (ffmpeg) -> MPEG (mplex) -> вырезка рекламы (gopdit) -> DVDmenu (gimp) -> DVD (dvdauthor). Дальше делаем iso и прожигаем.


захват:

ffmpeg -f mjpeg -an -s 720x576 -vcodec mpeg2video -g 15 -b 3500 -r 50 -deinterlace -aspect 4:3 -y aaavideo.mjpeg -acodec mp2 -ac 1 -ab 128 -ar 48000 -y aaaaudio.mp2


мультиплексирование:

mplex -f 8 -o aaaoutput.mpg aaavideo.mjpeg aaaaudio.mp2


избавление от рекламы:

http://freshmeat.net/projects/gopdit/


Пока образ не стационарных DVD плейрах не проверял, но xine кушает такой диск без проблем. Итого = время записи + 15 минут редактирования.

anonymous
()
Ответ на: комментарий от anonymous

Ещё нужно добавить (насколько я теперь понимаю структуру mpeg), что GOP сменится при кардинальном изменении изображения (фильм - реклама, фильм - черный экран перед рекламой). Следовательно, реклама вырезается без потерь интересующего нас избражения.

anonymous
()
Ответ на: комментарий от anonymous

мои 5копеек:
1.звук AC3 всё-таки лучше MP2, хотя бы в плане совместимости с бытовыми плеерами
2.интерлесный видеоматериал (эфир etc.) не только НЕ НУЖНО деинтерлесить, это ВРЕДНО для качества картинки - на ТВ картинка будет как родная, а на компе можно включить Deinterlace во время воспроизведения -
поэтому вместо "-deinterlace" лучше поставить "-ildct -ilme"

я написал на гентушном форуме это http://forums.gentoo.org/viewtopic.php?t=117709&postdays=0&postorder=asc
&start=100
========================================
#!/bin/bash

for v in ${*}
do
    ffmpeg -i ${v} -target dvd -mbd 2 -strict 1 -ildct -ilme -an -qmin 2 -pass 1 \
    -y /dev/null && \
    ffmpeg -i ${v} -target dvd -mbd 2 -strict 1  -ildct -ilme -an -qmin 2 -pass 2 \
    -y -map 0:0 ${v%.*}_nosound.vob -ab 224 -map 0:1 ${v%.*}.ac3 && \
    mplayer ${v%.*}_nosound.vob -nosound -dumpvideo -dumpfile ${v%.*}.m2v && \
    mplex -V -f 8 -o ${v%.*}_ffdvd_out.mpg  ${v%.*}.m2v ${v%.*}.ac3 && \
    rm -f ${v%.*}_nosound.vob ${v%.*}.m2v ${v%.*}.ac3 && \
    echo "-=: ${v} succesfully encoded in ${v%.*}_ffdvd_out.mpg :=-"
done
==========================================================
после отработки скрипта:

dvdauthor -o out -a ru /path/to/encoded/mpeg/*.mpg && \
dvdauthor -o out -T && \
growisofs [-dvd-compat] -Z /dev/dvd -V "MY_DVD_VOLUME" -dvd-video out

на самом деле для эфира можно и нужно обойтись единственным пассом, можно убрать "-mbd 2": разницы никто не увидит и можно добавить желаемый битрейт "-b 3500 -ab 128". А "-r 50" -это лишнее (ИМХО).

t0nik
()
Ответ на: комментарий от t0nik

>2.интерлесный видеоматериал (эфир etc.) не только НЕ НУЖНО
>деинтерлесить, это ВРЕДНО для качества картинки - на ТВ картинка будет
>как родная, а на компе можно включить Deinterlace во время
>воспроизведения - поэтому вместо "-deinterlace" лучше поставить
>"-ildct -ilme"

Хмм. ffmpeg-csv без -deinterlace качество на динамических сценах просто отвратное (отрисовывается квадратами). С -deinterlace всё ОК.


>А "-r 50" -это лишнее (ИМХО).

Если оставить фпс по дефолту (25), то запись с ТВ получается дискретная (изображение "скачет"). Лечится только выставлением фпс в 50.

Есть какие-либо мнения?

anonymous
()

спутниковая тарелка - Pinnacle DV500 - записали сделали необходимый монтаж. Скинули на DVD-Ram Panasonic. Вставили DVD-Rom в комп., выдрали mpg-файл. Засунули его в программу авторинга, нарисовали кнопки, прожгли. Получили диск и сидим пиво пьем :) Вопросы есть?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.