A trivi szerintem ez lett volna:
mencoder -o JMJ.flv -ovc copy -oac copy JMJ1.flv JMJ2.flv JMJ3.flv JMJ4.flv
sajnos ezzel az a gond, hogy:
Stream #0.0: Video: h264, yuv420p, 624x360 [PAR 1:1 DAR 26:15], 574 kb/s, 25 tbr, 1k tbn, 50 tbc
Stream #0.1: Audio: aac, 44100 Hz, stereo, s16, 99 kb/s
és a mencoder az aac-re csúnyákat mond, hogy azt biza nem lehet copy-zni. (Ez a pontos üzenet:
A(z) 0x4134504d audió formátum nem kompatibilis a '-oac copy'-val, kérlek próbáld meg a '-oac pcm' helyette vagy használd a '-fafmttag'-ot a felülbírálásához.
Azt viszont nem sikerült kitalálnom, hogy mi a franc legyen a -fafmttag paramétere. Maga a 0x41... nem volt neki jó. A másik tippel meg az a baj, hogy én nem akarom dekódolni, maradjon csak nyugodtan aac-ben.)
Akkor keressünk ffmpeg-es megoldást. Sajnos a logikusnak tűnő
ffmpeg -i JMJ1.flv -i JMJ2.flv -i JMJ3.flv -i JMJ4.flv -acodec copy -vcodec copy JMJ.flv
sem OK. Szó nélkül megcsinálja, de csak az elsőt másolja át. Próbálkoztam még a man-beli pédák alapján máshova tenni a -vcodec/acodec paramétereket, de nem sikerült az megoldani. Ellenben mit ad isten a FAQ-ja pont tartalmazza az FLV-k összefűzésének módját, aminek lényege nagyon egyszerű - bármennyire is szeretném, nem megy átkódolás nélkül (pedig akarja nyavalya). Megpróbáltam a FAQ-ban levő példát. Jó lassú lett, de ment. Aztán persze átalakítottam, hogy mind a négyet ragassza össze egyszerre- no ezzel aztán elmolyolt jó sokáig. (Több, mint egy órát.)
És amitől dühös vagyok: amikor már nagyon untam, hogy hangos a laptop, elkezdtem Windows-os eszközt keresni. (Megtaláltam egyébként az Adobe, Linuxra is elérhető RichFLV nevű eszközét, de sajnos az installere nem szereti a FreeBSD Linux-emuját, így az kimaradt.) Szóval az első amire ráakadtam, az valami "Andy flvjoin"-ja néven futott, egy 0.6-os verziót töltöttem le; wine alatt csont nélkül futott, és kb a diszkre irás/olvasás ideje alatt végzett is a dologgal. "Komoly" grafikus eszköz, 2 kattintással betehetőek voltak a fájlok, és már csak a join gomb volt hátra.
Aztán találtam még egy flvbind nevű eszközt is, no ez már cmd ablakból futtatandó, így sokkal "nehezebb" volt használni, de ez se sokat szarozott.
És persze a végén a kérdés: mi a francért nincs/nem találtam ilyen eszközt Linuxra/FreeBSD-re. (Az igazsághoz hozzátartozik, hogy az flvjoin *után* megtaláltam két ilyet is: az flvtool++ illetve a ruby-flvtool2 nevű eszközöket. Ezekkel csak az a bajom, hogy: az flvtool++ nak ICU-függősége van, és azt a szoftverkomponenest valamiért nem szeretem a gépemre telepíteni. A másik pedig, mint neve is mutatja, Ruby-t igényel. Azaz mind a két eszköz működése igényel valami nagy eszközt pluszban; ellenben a Win-toolok: az flvbind.zip 103159 byte, míg az flvjoin.zip mindösszesen 31854 byte! - és nem kilo/mega - :-( és egyik sem hiányol semmi egyebet maga mellé. Persze van a neten sokmegás eszköz is ilyen flv join funkcióra, de azok már nem érdekelnek.)
- Zahy blogja
- A hozzászóláshoz be kell jelentkezni
- 2220 megtekintés
Hozzászólások
- A hozzászóláshoz be kell jelentkezni
Es ez miert is jo?
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
Hm. Erre nem gondoltam, de most csináltam néhány tesztet. Alapból az mkvmerge nem jó, mert - mint azt azonnal jelzi is, a bemenet FLV és nem MKV. Nosza. ffmpeg -acodec copy -vcodec copy és már mkv-ban is vannak a fájlok (OK, tesztnek csak 2 a négyből). És ezek után gyönyörűen megy az mkvmerge. Hátulütő, hogy meg kell csinálni a matroska konténert használó átmeneti fájlokat. Illetve az is, hogy ha valami hülye okból flv kell, akkor a végeredményt mkv-ből vissza kell konvertálni flv-be. Ez mondjuk jelenleg nem probléma.
De ha már belekezdtem, akkor folytattam. Emlékeztem, hogy az mpgtx csomagban van egy mpgjoin, és a transcode-ban egy avimerge. Nosza. ffmpeg-gel (szigorúan copy módban) átalakítottam az ezen programok számára elfogadható formátumba, és megpróbáltam azokkal az összefűzést.
Az mpgtx csúfosan megbukott (ami asszem nem nagyon csodálható, hiszen mintha mpg-ben nem lehetne x264/aac), egész egyszerűen felpörgette a procit, és nem történt semmi. Ellenben, mivel az ffmpeg-gel előállított "mpg"-fájban maga az ffmpeg nem találta meg a videó sávot, azt hiszem ez nem annyira az mpgtx hibája.
És ugyanúgy nem volt járható a transcode, a végeredményül kapott avi-t nem volt képes lejátszani az mplayer, a vlc, az ffplay (és az xfce-parole sem, amely gstreamer-t használ backend-nek), mindegyik program köpte a hiákat az avi-fájlra. És ráadásul az avimerge sokkal lassabb összefűzésben, mint az egyebek. Ja, mondjuk a valódi átkonvertáláshoz képest gyors, de a használhatatlan végeredményhez képest azért kicsit sok procit zabál.
Szóval a kérdés még áll: 2 flv összefűzéséhez mi a franc a járható út, ha amúgy átkonvertálni nem szeretném, és órákat se szeretnék várni, meg böszme nagy csomagokt feltelepítgetni. (Magyarul valaki aki jobban ott van mencoder-ben/ffmpeg-ben, az tudna adni megfelelő opciót?)
- A hozzászóláshoz be kell jelentkezni
"Sajnos a logikusnak tűnő..."
RTFM-el ezt elkerülhetted volna. Pl. a FAQ is szépen leírja, miképp lehet összefűzni ffmpeg-el flv-t
mkfifo temp1.a
mkfifo temp1.v
mkfifo temp2.a
mkfifo temp2.v
mkfifo all.a
mkfifo all.v
ffmpeg -i input1.flv -vn -f u16le -acodec pcm_s16le -ac 2 -ar 44100 - > temp1.a < /dev/null &
ffmpeg -i input2.flv -vn -f u16le -acodec pcm_s16le -ac 2 -ar 44100 - > temp2.a < /dev/null &
ffmpeg -i input1.flv -an -f yuv4mpegpipe - > temp1.v < /dev/null &
cat temp1.a temp2.a > all.a &
cat temp1.v temp2.v > all.v &
ffmpeg -f u16le -acodec pcm_s16le -ac 2 -ar 44100 -i all.a \
-f yuv4mpegpipe -i all.v \
-sameq -y output.flv
rm temp[12].[av] all.[av]
Arról nem beszélve, hogy ffmpeg konverzióra és streamelésre lett kitalálva, nem video szerkesztésre.
--
"Maradt még 2 kB-om. Teszek bele egy TCP-IP stacket és egy bootlogót. "
- A hozzászóláshoz be kell jelentkezni
Akkor idézném a közvetlenül az általad idézett részt követő pár mondatomat:
"Ellenben mit ad isten a FAQ-ja pont tartalmazza az FLV-k összefűzésének módját, aminek lényege nagyon egyszerű - bármennyire is szeretném, nem megy átkódolás nélkül (pedig akarja nyavalya). Megpróbáltam a FAQ-ban levő példát. Jó lassú lett, de ment. Aztán persze átalakítottam, hogy mind a négyet ragassza össze egyszerre- no ezzel aztán elmolyolt jó sokáig. (Több, mint egy órát.)"
Magyarul megvolt az RTFM, meg is találtam, meg is csináltam, de nem vagyok vele elégedett: átkódol pedig nem biztos, hogy kéne - és az átkódolás miatt lassú lesz (lásd a végén a hivatkozást arra, hogy van szoftver, ami megteszi átkódolás nélkül).
De akkor legyünk kicsit konstruktívabbak: mi az, ami szerinted erre lett kitalálva: simán összeragasztani 2 db (N db) flv-t egybe? Mindezt lehetőleg sallangmentesen, gyorsan, mindenféle átalakítás nélkül, stb? (Szerintem mindent leírtam már korábban.)
- A hozzászóláshoz be kell jelentkezni
(Nem akartam az eredeti hozzászólást szerkeszteni: tévedés, sem a ruby-flvtool2, sem az ez alapján átírt flvtool++ nem tud összefűzést. Most néztem meg.)
- A hozzászóláshoz be kell jelentkezni
playlist? ;)
- A hozzászóláshoz be kell jelentkezni
Egy tipp, ami valószínűleg nem segít, de hátha tévedek:
Az avidemux parancssorból is használható, a --nogui, --load, --append, --save kapcsolókkal (többek között). Elviekben összefűzi az flv fájlokat.
Amiért valószínűleg mégsem lesz jó: csak az FLV1 és a VP6 videót támogatja az flv fájloknál. A youtube-ról letöltött flv-k viszont általában nem ilyenek. Így gyakorlatilag neked nem lesz jó.
Ha hajlandó vagy kompromisszumra, és lemondasz az aac hangról, akkor a pcm formátumra konvertálás nagyon gyors lesz mencoderrel. Ennek fejében kb. háromszorosára nő a fájl mérete. Tesztként egy 36 perces, 3 részes flv-t raktam össze, és kevesebb mint 1 perc alatt megvolt pcm konverzióval.
-----
"Ember embernek farkasa." Ezért aztán "Holló a hollónak nem vájja ki a szemét."
- A hozzászóláshoz be kell jelentkezni
Bocs hogy belepofázok, meg nem is az összefűzéshez kapcsolódik, de letölthető MP4 formátumban is :-)
--
A főnököm mindig megtartja amit ígér, ha pénzt ígér azt is!
- A hozzászóláshoz be kell jelentkezni
kdenlive? Összetolod timeline-on, aztán renderelsz.
- A hozzászóláshoz be kell jelentkezni