mencoder -idx probléma

Fórumok

Kedves HUP-osok!

A következő a problémám:

Adott egy tucatnyi videó mp2-be kódolva, mind azonos mérettel, bitrátával, beállításokkal.
Ezek elé egy copyright szöveget és egy címoldalt raknék 10 illetve 4 s-ig. Ezeket megszerkesztettem, azonos beállításokkal mp2 fájlokba tettem le.

Itt jön a baj:
0) Az mpg elvben cat-tal összefűzhető. De ha ezt teszem, akkor mplayer és vlc lejátssza, de Windowson a MediaPlayer nem, csak az első 10 s-ig jut. A Linux alatti mplayer és vlc lejátssza ugyan, de a kijelzett idő információ rossz.
(Természetesen a cím és copyright szövegek alatt van egy üres hangsáv is, azonos paraméterekkel, mint a fő videón.)

1) OK, utána olvastam, erre van a

mencoder -idx -oac copy -ovc copy a.mpg b.mpg c.mpg -o kesz.mpg

Ez elvileg helyrehozza az időjelölést. Na itt van amit nem értek: a mencoder erre ezt mondja:
(A 10 és 4 s-os előlapok után)

.................

videocodec: framecopy (1024x576 24bpp fourcc=10000001)

videocodec: framecopy (1024x1024 24bpp fourcc=10000002)

All video files must have identical fps, resolution, and codec for -ovc copy.

Exiting...

..................

A c.mpg-ről tehát azt hiszi, hogy 1024x1024-es, pedig 1024x576-os, ugyanúgy, mint a többi. Mi a fene a baja?

(Ubuntu 10.10 frissítésekkel.)

Előre is kösz!

PS: Nem, nem akarok video editor progit használni, mert iparszerűen kellene sok fájllal eljátszani ezt.

Hozzászólások

nem lehet hogy tenyleg 1024x1024 es tartalmaz aspect ratio beallitast?

---
Apple iMac 20"
áéíóöőúüű

Nem. Mindet ugyanazzal az ffmpeg beállításokkal generáltam, VLC, mencoder problémamentesen lejátssza a rész-videókat és persze mindegyik 1024x576-os.

Ezzel kódolom a videót:
.........
ffmpeg -i $1 -f dvd -vcodec mpeg2video -r 25.00 -s 1024x576 -aspect 16:9 -b 1200k -mbd rd -trellis -mv0 -cmp 2 -subcmp 2 -acodec mp2 -ab 128kb -ar 48000 -ac 1 -pass 1 -y /dev/null >/dev/null 2>/dev/null

ffmpeg -i $1 -f dvd -vcodec mpeg2video -r 25.00 -s 1024x576 -aspect 16:9 -b 1200k -mbd rd -trellis -mv0 -cmp 2 -subcmp 2 -acodec mp2 -ab 128kb -ar 48000 -ac 1 -pass 2 -y $2 >/dev/null 2>/dev/null
..........

Ezzel meg a 4 s-os előlap-részt:
...........
for i in `seq 250`
do
ln -s $1 cc-`printf "%03d" $i`.png
done

ffmpeg -i cc-%03d.png -vcodec mpeg2video -r 25.00 -s 1024x576 -aspect 16:9 -b 1200k -mbd rd -trellis -mv0 -cmp 2 -subcmp 2 -i csend10.wav -acodec mp2 -ab 128kb -ar 48000 -ac 1 -y `basename $1 .png`.mpg
............

(A 10s-os ehhez tök hasonló.)

Tehát mindegyik helyen explicite megadom a felbontást és az aspect-et is, és egyenként jó is a lejátszás.

Szerintem így nehéz lesz segítenünk. Ha van 3 publikus videód, amiket nem tudsz így összefűzni, akkor megoszthatnád őket.

OK, itt van 3 mpg, melyeket a fenti ffmpeg szkriptekkel gyártottam:

http://www.sze.hu/~horvatha/Tmp

Ezeket a

mencoder -oac copy -ovc copy -idx -o Kesz/tmp.mpg cimlap_copyright.mpg cimlap_tobbvissz_1.mpg fizopt-36.mpg

paranccsal szeretném összefűzni. Erre dobja ki, hogy az utolsó komponens (a fizopt-36.mpg) szerinte 1024x1024-es, ezért nem fűzi össze.

cat-tal összefűzve egy mplayer-nek és vlc-nek megfelelő anyagot kapok, de ez nem jó a MediaPlayer-nek.

Ha a cat-tal összefűzöttet eresztem át a 'mencoder -idx'-en, akkor kapok egy fájlt, de azt meg a VLC nem játssza le...

PS1: Tudom, elég műveletlen vagyok mozgókép ügyben, ezt kár kritizálni.

PS2: Az előadások anyagát ingyen, bérmentve, segéderő nélkül veszem fel a levelezős hallgatók kedvéért. Tudom, hogy nem a legjobb a minőség, ezt kár kifogásolni.

Nem tudom ez segít-e. Letöltöttem a videókat, lefuttattam a parancsodat, végigolvastam a kimenetet:

a kis videók MPEG1-ben, a nagy MPEG2-ben van. Mellesleg panaszkodik is (WARNING: OUTPUT FILE FORMAT IS _AVI_. See -of help.), de a

-of mpeg

nem oldja meg a problémát.

Egyébként szerintem nincs okod panaszra, a kivetített szöveg látszódik, a beszéd érthető, teljesen rendben van.


ffmpeg -i cimlap_copyright.mpg -vcodec mpeg2video cimlap_copyright_mpeg2.mpg
ffmpeg -i cimlap_tobbvissz_1.mpg -vcodec mpeg2video cimlap_tobbvissz_1_mpeg2.mpg
mencoder -of mpeg -oac mp3lame -ovc copy -idx -o kesz.mpg cimlap_copyright_mpeg2.mpg cimlap_tobbvissz_1_mpeg2.mpg fizopt-36.mpg

Én ezekhez a dolgokhoz nem értek, a google segített. A hangot újratömörítem, de feleslegesen. Lehet, hogy lenne valamilyen jó opció. Lehetne aviban is (attól a videó még mpeg, az avi csak a tároló formátum), ha elhagyod a

-of mpeg

opciót.

Kösz, ez rávezetett a megoldásra.

Hiába volt az én szkriptjeimben is benne, hogy "-vcodec mpeg2video", úgy tűnik, túl elöl volt a parancssorban. Hátrébb pakoltam, most már a címlap-gyártó szkriptek is mpeg2-t generálnak, így meg megy a mencoder-es átpörgetés.

Hát, erre mondják, hogy az ffmpeg-hez pilótavizsga kell, mert a hibaüzenetekből ez nagyon nem derült ki.

Még egyszer kösz!

Nem megoldás, megkerülés: nézd meg az avimerge parancsot is (transcode csomag), az nekem többször adott helyes eredményt, mint a mencoder (avimerge -o kesz.mpg -i 1.mpg 2.mpg). Én ezt bőven betudom a mencoder irgalmatlan mennyiségű opciójának és az én hozzá nem értésemnek, de mivel pont ugyanígy sok film kötegelt feldolgozához kerestem eszközt, nekem bejött.

Próbáltam, nem megy, de kösz.

Most egy új workaround-ot próbálok: cat-tal összefűzni, mencoder -idx-szel átpörgetni (eddig megvolt, csak a vlc nem szerette az eredményt) és az újdonság: explicite megadni, hogy "-of mpeg" az átpörgetéskor. Ez egy példán jól működött. Most próbálom tovább.