LINUX.ORG.RU

AVI -> MPEG2 -> VIDEOCD


0

0

Как проделать вышеуказанные преобразования под Linux? Наибольший интерес представляет первый этап - AVI -> MPEG2 . Такую штуку, по-идее, можно сделать с помощью transcode, но у меня почему-то не компилируется експортный модуль - export_mpeg, который за это дело и отвечает. Не верю что я первый с этим встретился, кто что-то знает, помогите пож-ста. Спасибо.

anonymous

Всё, что написано снизу - не моё :) Но у меня срабатывало

--------------------------------------------------------------------
Перегон avi в SVCD (с) мой. GPL. Писано на коленке для себя.
Насколько помню, постил не раз.

1-й случай. PAL (в исходном avi 25fps).
#!/bin/sh
mkdir tmp
ORIG=tmp/`basename $1 .avi`
echo "Doing transcode..."
transcode -i $1 -V -y mpeg2enc,mp2enc -F "5,-S 800" -E 44100 -b 128 -o $ORIG -Z 480x576
echo "Doing mplex..."
mplex -f 4 -S 800 -o $ORIG%d.mpg $ORIG.m2v $ORIG.mpa

2-й случай. NTSC (в исходном avi 29.97fps либо 23.976fps).
#!/bin/sh
mkdir tmp
ORIG=tmp/`basename $1 .avi`
echo "Doing transcode..."
transcode -i $1 -V -y mpeg2enc,mp2enc -F "5,-S 800" -E 44100 -b 128 -o $ORIG -j -92 -Z 480x480
echo "Doing mplex..."
mplex -f 4 -S 800 -o $ORIG%d.mpg $ORIG.m2v $ORIG.mpa
#end

3. Скрипт сборки образа диска для прожига
#!/bin/sh
TITLE=`basename $1 .mpg`
echo "Doing VCDImager..."
vcdimager -p -t svcd -b $TITLE.bin -c $TITLE.cue $@

4. Скрипт прожига
#!/bin/sh
# первый параметр -- имя .cue-файла, второй -- скорость.
cdrdao write -v 2 --speed $2 $1

Замечания.
1. Для NTSC материала нужно правильно подобрать значение
параметра -j. Указанное значение (-92) корректно для
фильмов им. тов. Гоблина (тех, что я кодировал).
2. Максимальный размер диска -- 800Мб, что отлично влезает
на 700Мб болванку из-за того, что пишется "полный" сектор.
Грубо можно считать "800Мб == 80 мин".
-----------------------------------------------------------

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

Внесу поправку в свой старый код. ;-)

Там, где '-S 800', лучше ставить '-S 793', дабы гарантированно избежать необходимости overburn'а при прожиге. Когда я писал те скрипты, ещё не напарывался на сей факт.

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

Причем все это, включая скрипт Obidos'а, есть в faq на этом сайте.

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

У меня вопрос немного не в тему, но...
Есть у меня подобный скрипт, но (сука) он (transcode) конвертит не весь
авишник, а только часть его, без сообщений об ошибках, вместо 3-х
образов получаю мпег мегов в 400 и все, с какими ключами запустить его (transcode), что-бы увидеть на чем он спотыкается.
Почему transcode оставляет два процесса с мплаером после завершения
работы в памяти, даже если перегонялся не большой авишник (т.е.
сконвертированный полностью).

ЗЫЖ transcode-0.6.12, mplayer 1.0 pre3 (с 0.92 - то же процессы
оставались)

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

>Почему transcode оставляет два процесса с мплаером после завершения
работы в памяти, даже если перегонялся не большой авишник

transcode не может оставлять в памяти процессы mplayer, т.к. он к нему не имеет никакого отношения и, соответственно, его не запускает.

На тему части - либо места не хватает, либо спотыкается на поврежденной части. Попробуй перегнать mencoder'ом (см. опять же faq или man) avi->avi, затем уже transcode.

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

> transcode не может оставлять в памяти процессы mplayer,

А какже тогда работает опция '-x mplayer', или ты думешь что transcode грузит mplayer как расшаренную библиотеку.

> На тему части - либо места не хватает,

не настолько я богом обиженный

> либо спотыкается на поврежденной части.

Повреждения у файла нет (я уж раз пять его менкодером проутюжил), видеокодек у авишника какой-то "забавный" его только mplayer умеет распаковывать (от Гоблина подарок). Связываться с перегоном из одного формата сжатия с потерями в другой, чтобы затем вывернуть все это дело в третий - представляется идиотизмом.

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

> А какже тогда работает опция '-x mplayer'

А на кой это надо? У transcode + mjpegtools нормальный набор кодеков.

> только mplayer умеет распаковывать (от Гоблина подарок)

Название? Если я это перекодировал, подскажу, что и как.

Да, transcode 0.6.12 имеет одну особенность (которой не было в предыдущей версии) -- после завершения mpeg2enc+mp2enc "родительский" transcode повисает как зомби, но отлично прибивается kill -9, после чего эстафету принимает mplex, в конечном итоге имеем нормальный mpg.

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

Вот как о нем говорит mplayer:
Cache fill: 0,00% (0 bytes) Обнаружен AVI формат файла!
VIDEO: [COL1] 672x288 24bpp 23,977 fps 870,8 kbps (106,3 kbyte/s)
Информация о клипе:
Software: MEncoder 1.0pre3-3.2.2
==========================================================================
Открываю декодер аудио: [mp3lib] MPEG layer-2, layer-3
MP3lib: init layer2&3 finished, tables done
AUDIO: 44100 Hz, 2 ch, 16 bit (0x10), ratio: 4000->176400 (32,0 kbit)
Selected audio codec: [mp3] afm:mp3lib (mp3lib MPEG layer-2, layer-3)
==========================================================================
vo: X11 running at 1024x768 with depth 24 and 32 bpp (":0.0" => local display)
==========================================================================
Открываю декодер видео: [ffmpeg] FFmpeg's libavcodec codec family
Selected video codec: [ffdivx] vfm:ffmpeg (FFmpeg DivX ;-) (MS MPEG-4 v3))
==========================================================================

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

А вот что говорит transcode если опцию '-x' пропустить:
transcode v0.6.12 (C) 2001-2003 Thomas Oestreich, 2003-2004 T. Bitterberg
[transcode] (probe) suggested AV correction -D 0 (0 ms) | AV 0 ms | 0 ms
[transcode] auto-probing source bigvideo.avi (ok)
[transcode] V: import format | unknown RIFF data, AVI (V=(null)|A=(null))
[transcode] warning : no option -x found, option -i ignored, reading from "/dev/
[transcode] V: import frame | 672x288 2.33:1
[transcode] V: clip frame (<-) | 640x460
[transcode] V: fast resize | requested but can't be used (W or H mod 8 != 0
[transcode] V: zoom | 480x480 1.68:1 (Lanczos3)
[transcode] V: bits/pixel | 0.326
[transcode] V: decoding fps,frc | 23.977,1
[transcode] V: Y'CbCr | YV12/I420
[transcode] A: import format | 0x55 MPEG layer-3 [44100,16,2] 186 kbps
[transcode] A: export format | 0x50 MPEG layer-2 [44100,16,2] 128 kbps
[transcode] V: encoding fps,frc | 3.000,0
[transcode] A: bytes per frame | 58800 (58800.000000)
[transcode] A: adjustment | 0@1000
[transcode] V: IA32 accel mode | 3dnow (3dnow mmxext mmx asm)
[transcode] V: video buffer | 40 @ 672x480
[import_null.so] v0.2.0 (2002-01-19) (video) null | (audio) null

import_null.so - он и в африке null после этого просматривается только
зеленый прямоугольник (даже в переводе Гоблина, не очень).

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

Поправляет. --forceidx. Так фильм-то какой, может, и не в этом дело?

Может, всего-навсего, побилось при скачивании...

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

>Поправляет. --forceidx.

--forceidx - я натравлял

> Так фильм-то какой, может, и не в этом дело?

LOTR II

> Может, всего-навсего, побилось при скачивании.

Мне на сидюках принесли, а где брали - то неведомо...

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

> LOTR II

А, это в Гоблине у меня на dvd. Кстати, не ругается ли mencoder на "badly interleaving"? А такое лечится mencoder -oac copy -ovc copy -idx (только сегодня проверил на битом Thursday).

Теперь далее. На кой хрен склеивать два avi, потом пережимать в mpeg2, когда можно по отдельности (всё равно мои скрипты берут только первую аудиодорожку)? Сколько помню Гоблиновских фильмов, в случае неоднодискового перевода 1 часть == 1 SVCD (в тяжёлых случаях с овербёрном, например, "двухчастёвый" Full Metal Jacket). У вас, похоже, вся проблема из-за кривой склейки.

P.S. Ешё идея -- hex-редактором исправьте COL1 на нормальный идентификатор DIV3, всё равно там divx3.

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

> 1 часть == 1 SVCD

У меня получалось 2 с хвостиком, но потом захотел сделать другой crop да на другом transcode...

> P.S. Ешё идея -- hex-редактором исправьте COL1 на нормальный идентификатор DIV3, всё равно там divx3.

С этого надо было начинать!!! Спасибо сегодня проверю...

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