1. KDE-ből (természetesen renszergazdai jog nélkül) felmountoltam a DVD-n található UDF fájlrendszert. Ugyanez persze megtehető .ISO fájlokkal is loop eszközök segítségével, de ahhoz az én rendszeremen (OpenSUSE 13.2) rendszergazdai jog kellett.
2. Egy kis mplayeres nézegetés után kiválogattam, hogy a DVD VIDEO_TS könyvtárából mely .VOB fájlok mely video és audio sávját (természetesen a magyart!) akarom kinyerni, majd elő lépésként .AVI-ba konvertáltam, mondjuk így:
cat *[1-9].VOB | ffmpeg -i - -map 0:1 -map 0:3 -vcodec libx264 -acodec aac ~/Videók/legalstuff.avi
Pár filmnél a szinkron mellé kiegészítő feliratokra is szükség volt. Ezt is ki lehet nyerni a DVD-n levő .VOB fájlokból, de ott grafikus formában vannak, amit karakterfelismerésnek kell alávetni, amivel nem bajlódtam, hanem letöltöttem a szöveges formátumú (.SRT) feliratokat, és ezeket kombináltam össze az .AVI fájlokkkal .MKV fájlokká, amelyeket a tévénk feliratostól együtt kiválóan le tud játszani. Sajnos azonban azzal szembesültem, hogy a fellelhető .SRT fájlok némelyik nincs szinkronban a DVD-ről kinyert filmanyaggal, mert pl. más FPS-en lejátszott verzióhoz való. Mivel teljesen ismeretlen volt számomra ez az egész témakör, nem tudtam róla, hogy létezik a .SRT fájlok időbeli problémáinak korrigálására szolgáló eszköz, ezért egyik éjszaka írtam rá egy shell szkriptet, ami a végleges formájában a következőképpen néz ki:
#!/bin/bash
# $1 : Name of .srt file to manipulate
# $2 : Desired time to start displaying the first subtitle
# $3 : Desired time to start displaying the last subtitle
srt2msec ()
{
date --utc "--date=1970-01-01 $1" +%s%N | sed s/000000$//
}
msec2srt ()
{
SEC="$(echo $1 | sed -r 's/(^[[:digit:]]*)([[:digit:]]{3}$)/\1,\2/')"
date --utc "--date=@$SEC" +%H:%M:%S,%N | sed s/000000$//
}
if echo $2 | egrep -q '^[[:digit:]]{2}:[[:digit:]]{2}:[[:digit:]]{2},[[:digit:]]{3}$'
then
FIRST=$2
FIRST=$(srt2msec $FIRST)
else
echo '$2 (start time of first subtitle) must be in HH:MM:SS,MSC format'
exit
fi
if echo $3 | egrep -q '^[[:digit:]]{2}:[[:digit:]]{2}:[[:digit:]]{2},[[:digit:]]{3}$'
then
LAST=$3
LAST=$(srt2msec $LAST)
else
echo '$3 (start time of last subtitle) must be in HH:MM:SS,MSC format'
exit
fi
DIFF=$(( $LAST - $FIRST ))
dos2unix $1
OLDFIRST="$(egrep '^[[:digit:]]{2}:[[:digit:]]{2}:[[:digit:]]{2},[[:digit:]]{3}[[:space:]]+-->[[:space:]]+[[:digit:]]{2}:[[:digit:]]{2}:[[:digit:]]{2},[[:digit:]]{3}$' $1 | head --lines=1 | sed -r 's/[[:space:]]+.*$//')"
OLDLAST="$(egrep '^[[:digit:]]{2}:[[:digit:]]{2}:[[:digit:]]{2},[[:digit:]]{3}[[:space:]]+-->[[:space:]]+[[:digit:]]{2}:[[:digit:]]{2}:[[:digit:]]{2},[[:digit:]]{3}$' $1 | tail --lines=1 | sed -r 's/[[:space:]]+.*$//')"
OLDFIRST=$(srt2msec $OLDFIRST)
OLDLAST=$(srt2msec $OLDLAST)
OLDDIFF=$(( $OLDLAST - $OLDFIRST ))
cat $1 | while read LINE
do
if echo $LINE | egrep -q '^[[:digit:]]{2}:[[:digit:]]{2}:[[:digit:]]{2},[[:digit:]]{3}[[:space:]]+-->[[:space:]]+[[:digit:]]{2}:[[:digit:]]{2}:[[:digit:]]{2},[[:digit:]]{3}$'
then
FROM="$(echo $LINE | sed -r 's/[[:space:]]+.*$//')"
TO="$(echo $LINE | sed -r 's/^.*[[:space:]]+//')"
FROM=$(srt2msec $FROM)
TO=$(srt2msec $TO)
(( FROM -= OLDFIRST )) ; (( FROM *= DIFF )) ; (( FROM /= OLDDIFF )) ; (( FROM += FIRST ))
(( TO -= OLDFIRST )) ; (( TO *= DIFF )) ; (( TO /= OLDDIFF )) ; (( TO += FIRST ))
FROM=$(msec2srt $FROM)
TO=$(msec2srt $TO)
echo "$FROM --> $TO"
else
echo $LINE
fi
done > /tmp/subrip.$$
cat /tmp/subrip.$$ > $1 ; rm /tmp/subrip.$$
unix2dos $1
3. Miután ez minden hibája ellenére működöképesnek bizonyult, kezelésbe vettem az .SRT fájlokat, majd nekiláttam a végleges .MKV fájlok létrehozásának a következő módon:
ffmpeg -i legalstuff.avi -i legalstuff.srt -map 0:0 -map 0:1 -map 1:0 -c:v copy -c:a copy -c:s subrip legalstuff.mkv
4. Igen ám, de az így elkészült .MKV fájlokat érvénytelen formátumúnak látta az újabb képtelen igényekkel előálló tévékészülék. Rájöttem, hogy valamilyen metainformációkat hordozó tagek feldolgozásába törik bele a bicskája, ezért ezeket az mkvpropedit programmal eltávolítottam, másokat pedig hozzáadtam így:
mkvpropedit legalstuff.mkv --tags all:
mkvpropedit legalstuff.mkv --edit track:v1 --set language=hun --edit track:a1 --set language=hun --edit track:s1 --set language=hun --set flag-default=1 --set flag-forced=1
A hozzáadott metainformációk közül a forced flag a legfontosabb, mert ez utasítja a lejátszót arra, hogy mindenképpen (kézi beavatkozás nélkül) jelenítse meg a feliratot.
5. Azt tapasztaltam, hogy az ffmpeg bizonyos verziói nem hajlandóak .AVI és .MKV között közvetlen könverziót végezni, de egy köztes .MP4 lépcsőfok beiktatása áthidalja a problémát. A kölönböző formátumú videofájlok közötti konverziónál "copy" típusú audio- és videokodeket használtam, így ezek a feldolgozási műveletek negyon gyorsan, kis CPU-terhelés mellett, és információvesztés nélkül mentek le, nem úgy mint a kezdeti .VOB -> .AVI átalakításnál.
Olyan is előfordult, hogy egy .SRT fájlt meggondolatlanul letöröltem miután beolvasztottam egy videóba, később mégis módosítani akartam rajta, úgyhogy vissza kellett nyernem, de az ffmpeg ezt is könnyedén megoldja, amíg szöveges feliratkodekkel integráljuk a videóba:
ffmpeg -i legalstuff.mp4 -c:s srt legalstuff.srt
- nice blogja
- A hozzászóláshoz be kell jelentkezni
- 1963 megtekintés
Hozzászólások
A mai világban, amikor (nagyon) olcsó a konzumer HDD tárhely, én biztos nem állnék neki MPEG2 videókat (DVD) átkonvertálni DIVX/XVID/MP4/H.264/bármiegyéb formátumba azért, hogy kisebb legyen. Az újratömörítéssel legalább még kidobsz egy keveset a DVD-k (mai, HD-hez szokott szemmel nézve) alacsony minőségéből.
Én valószínűleg simán leszedném az egész korongot ISO-ba, aztán azt manapság szinte minden lejátssza, tokkal-vonóval-menükkel-feliratokkal együtt, mintha az eredeti korongról nyomnád.
Persze, ha .srt-t akarsz alárakni, megy egyéb csoda igények vannak, akkor hajrá.
Minek az AVI konténer köztes fázis? Mehet VOB-ból egyből MKV-be. A transzkódolás közben hozzácsaphatod a feliratot is.
- A hozzászóláshoz be kell jelentkezni
A TV az oka mindennek. Nem minden háttértárral működik együtt, és nem játszik le iso-t. Nem úgy, mint a vlc, amit már használtam iso nézésre, de hát más a zajos, kis kijelzős notebook, mint a TV.
Az avi fázis a felirat beigazítása miatt van, mert ha melléteszek egy ugyanolyan nevű srt fájl, a legtöbb lejátszó kérdés nélkül együtt játssza le őket. Persze lehet, hogy mkv-val is menne, de ugyananyi erőforrást használ a mkv+srt->mkv konverzió mint az avi+srt->mkv, szóval mindegy.
- A hozzászóláshoz be kell jelentkezni
Az a helyzet, hogy én pont ezt a feladatot akartam megcsinálni, de az átkódolásmentes átalakításnál folyton beleütköztem abba, hogy eltorzult a kép. Valami képarány paraméter beállítását nem nagyon akaródzott eltalálnom, hogy mennyi is az annyi. Itt volt róla szó, de nem jutottam eredményre. Viszont változatlanul érdekel.
(Annyi változott csak azóta, hogy úgy tűnik a TV-m ugyan szereti az MKV-t, de a benne levő SubRip formátumú sub+idx feliratot nem annyira, így a fenti "leszedem hozzá az srt-t" megoldás praktikusan jobb. Persze az is lehet, hogy valamit elkeféltem a teszteknél.)
- A hozzászóláshoz be kell jelentkezni
Ott is le volt írva, az MKV fájlban be kell állítani a megfelelő metaadatokat. Ha megtetted, és a TV-d figyelmen kívül hagyja, akkor számodra nem megoldás.
:)
- A hozzászóláshoz be kell jelentkezni
Már várom a 2024. januári "Hogyan ripeltem először BluRay-t?" blogposztot! ;D
- A hozzászóláshoz be kell jelentkezni
Nincs olyan eszközöm, ami BD-t tudna olvasni, és ha valaha lesz is, a blueray már rég elavultnak fog számítani. Talán majd akkor vetemedek ilyesmire, ha már feledésbe merülnek az optikai lemezek :-) Pl. nemrég egy ilyen lemezről kellett: adatokat kimentenem: http://www.maxoptix.com/230mb/
- A hozzászóláshoz be kell jelentkezni
Biztos jó játék, és érdekes kihívás - ám erre vannak ám régóta működő kész megoldások is, mint:
- mplayer/mencoder (CLI)
- handbrake (GUI)
Ha ezeket ismered, de valamiért mégsem tudják azt amit te akartál - a hozzászólásomat nyugodtan ignoráld :)
--
zrubi.hu
- A hozzászóláshoz be kell jelentkezni
Igen, tényleg csak a kihívás része érdekelt, és mikor láttam, hogy az ffmpeg azonnal azt csinálja, amit szeretnék, nem keresgéltem tovább épeszű alternatíva után.
- A hozzászóláshoz be kell jelentkezni
Én ilyenekre a Transmission-t használom :)
- A hozzászóláshoz be kell jelentkezni
K9Copy
DigitalOcean 10$ kredit- Cloudatcost VPS 50%: MEQy2epUny - <3 openSUSE, Ubuntu, KDE <3
- A hozzászóláshoz be kell jelentkezni
Vajon legálisnak számít letölteni warezből az anyagot, amivel egyébként jogtisztán rendelkezel? Lehet ez lett volna a legegyszerűbb megoldás. Egyébként ahogy fentebb is írták, Handbrake kell neked.
Alternatív megoldásként még az jutott eszembe, hogy a gépet is ráköthetted volna a tévére. Persze nem minden esetben oldható meg az sem.
- A hozzászóláshoz be kell jelentkezni
Én azt gondolnám, hogy igen. Csakhogy az a helyzet, hogy ez az egész filmezősdi annyira kívül esik a látókörömön, hogy nics semmiféle torrent accountom (vagy hogy hívják ezeket). Egész életemben nem torrenteztem többet, mint ahány DVD-t beripeltem, és akkor is főleg Linux telepítőkészleteket szedtem le.
Amúgy az első gondolat nálam is a gép és a TV összekötése volt, de a gépem - nem tudom, hogy a saját hibájából vagy a Linuxéból - nem ad ki hangot a HDMI kimenetén, a VGA + analóg hang kombót meg a tévé nem hajlandó értelmezni. De még ha el is hárulnának ezek az akadályok, akkor is maradna a gép zúgása, amit nem akarok hallgatni.
- A hozzászóláshoz be kell jelentkezni
A gépzúgás problémáját megértem. Ha mégis egyszer rákötnéd, a hang beállításoknál külön át kell billenteni a kimenetet hdmi-re, nem tudom probáltad-e ezt már. Csak attól, hogy rádugod nem fog átváltani. Persze ettől még lehet, hogy nem működik, de próbacseresznye :)
Egyébként ha ennyire DVD-sek vagytok szerintem érdemes beruházni egy lejátszóra. Bár egy HD tévéhez már akkor legalább egy bluray lejátszót javasolnék, vannak olcsóér' is.
- A hozzászóláshoz be kell jelentkezni
Kép volt, csak hang nem. Évente kb. ötször nézünk filmet, szóval nincs értelme bármilyen lejátszót vennünk :-)
- A hozzászóláshoz be kell jelentkezni
A hangkimenetet át kell állítani, kell hozzá driver támogatás is és egyes BIOS-okban külön állítható, hogy a hangot is kiküldják HDMI-n vagy DisplayPorton.
- A hozzászóláshoz be kell jelentkezni
Vettem.
- A hozzászóláshoz be kell jelentkezni
.
- A hozzászóláshoz be kell jelentkezni
Ha egyszer már RIP-eltél, - egy egyébként általad megvásárolt, - DVD-t, akkor már a szerzői jogsértés elkövetve. Innentől akár torrent-ezheted is. Ti.: a DVD másolásvédelmének megtörése nélkül, nem fogod tudni, másolni és lejátszani. (Erre ugyan vannak megfelelő, de jogsértést(!) megvalósító programok.) - Ha egy adott filmet, mindenáron meg akarsz nézni, egyszerűen elkerülhetetlen időnként, a szerzői joggal való "ujjathúzás". (Egyébként persze értem, - hogy elsősorban a "szakmai" megvalósítás mikéntje izgatott...)
- A hozzászóláshoz be kell jelentkezni
Azt hittem, biztonsági másolatot szabad készíteni :-( Ráadásul nem is voltam tudatában annak, hogy másolásvédett a DVD. Ezt úgy kell értelmezni, hogy titkosított a videóanyag? Jól gondolom, hogy a libdvdcss 2 az, ami visszafejti a titkosítást? Csak azért kérdezem, mert nem látom az ffmpeg függőségei között, az ffmpegről pedig úgy tudtam mostanáig, hogy nem tudja visszafejteni a titkosított DVD-ket.
- A hozzászóláshoz be kell jelentkezni
Vajon legálisnak számít letölteni warezből az anyagot, amivel egyébként jogtisztán rendelkezel?
Elvileg akkor is legális, ha nem rendelkezel vele jogtisztán (legalábbis kép- és hanganyagnál), ezért fizeted az Artisjus matricát a háttértárakra. A probléma azzal van, hogy míg a letöltés legális, a feltöltés/megosztás nem, viszont a torrent alkalmazások ez utóbbit is megvalósítják.
- A hozzászóláshoz be kell jelentkezni
Egyébként ez talán már változott, a mostani állás az, hogy ha nincs közvetett haszonszerzés sem, akkor feltölteni is lehet. A csapda ott van elrejtve, hogy ez csak bizonyos értékhatárig van így, amit elég hamar el lehet érni.
A másolásvédelem megkerülése is problémás, illetve egy-egy anyag jogainak tulajdonosa polgári peres úton azért követelheti az elmaradt bevételét.
- A hozzászóláshoz be kell jelentkezni
milyen tv-tek van?
--
"nem tárgyszerűen nézem a dolgot, hanem a vádló szerepéből. Sok bosszúságot okoztak, örülnék ha megbüntetnék őket - tudom gyarló dolog, de hát nem vagyok tökéletes." (BehringerZoltan)
- A hozzászóláshoz be kell jelentkezni
Asszem, Toshiba :-)
- A hozzászóláshoz be kell jelentkezni
Én emlékeim szerint egyetlen egy dvd-t ripeltem xvid -be, mégpedig az Indul a bakterház -at, eredeti lemezről. Az akkori UHU Linuxban volt egy acidrip (és mögötte mplayer, mencoder (?)) és szó nélkül megcsinálta, 1 gombot kellett megnyomni.
--
arch,debian,openelec,android
- A hozzászóláshoz be kell jelentkezni
> Pár hónapja ismerkedtem meg az ffmpeg-gel, amikor azt a feladatot kaptam, hogy a semmiféle ezirányú szoftver- és
> hardvertámogatással nem rendelkező analóg kamerákra épülő biztonsági rendszerünk néhány steamjét távoli meghajtóra
> mentsem. A kizárólag IE alatt működő ActiveX alapú kamerakliensek kommunikációjának wireshark-os elemzése után
> ffmpeg-ből, ffplay-ből,tcpdump-ból és bbe-ből összegányoltam egy olyan kis shell scriptet, ami képes a kameraképek
> megjelenítésére és folyamatos rögzítésére.
Bocsánat! Ez engem jobban érdekel(ne). Lesz róla cikk? :)
- A hozzászóláshoz be kell jelentkezni
OK. De nem egy nagy durranás egyébként.
- A hozzászóláshoz be kell jelentkezni
Megvan. Íme: http://hup.hu/node/150314
- A hozzászóláshoz be kell jelentkezni
Nice. Köszönöm!
(btw megtaláltam, de a választ csak most vettem észre - nem mindig jelentkezem be.)
- A hozzászóláshoz be kell jelentkezni
Nincs mit :-)
- A hozzászóláshoz be kell jelentkezni
Megírnám a Hogyan ripeltem utoljára DVD-t? bejegyzést, de már nem emlékszem.
:)
- A hozzászóláshoz be kell jelentkezni
Nézd át a félretett floppy-kat, hátha valamelyiken megtalálod a scriptet. :-)
-----
(&%;_98\<|{3W10Tut,P0/on&Jkj"Fg}|B/!~}|{z(8qv55sr1C/n--k**;gfe$$5a!BB]\.-
- A hozzászóláshoz be kell jelentkezni
Régen én is saját scriptekkel warázsoltam, de évek óta a subconv.py segítségével oldok meg mindenféle javítgatást és átidőzítést. Magát a pythont rühellem, ez viszont annyira jól sikerült cucc, hogy csak ajánlani tudom:
http://sourceforge.net/projects/subconv/
***UPDATE: https://github.com/adamwasila/subconv/blob/master/subconv.py
- A hozzászóláshoz be kell jelentkezni
Ja, még annyi, hogy volt ennek a szkriptnek egy korábbi, kevésbé átgondolt változata. Ezt máshogy kellett paraméterezni, és kicsit mást is csinált. Íme:
#!/bin/bash
# $1 : Az időeltolásnak alávetendő .srt fájl neve
# $2 : Hány ezredmásodperccel kell eltolni a feliratokat (negatív is lehet).
# n/m alakban nem abszolút eltolást, hanem a felirat folyam időben megnyújtását írja elő.
# $3 : Az első eltolandó felirat sorszáma
# $4 : Az utolsó eltolandó felirat sorszáma
srt2msec ()
{
date --utc "--date=1970-01-01 $1" +%s%N | sed s/000000$//
}
msec2srt ()
{
SEC="$(echo $1 | sed -r 's/(^[[:digit:]]*)([[:digit:]]{3}$)/\1,\2/')"
date --utc "--date=@$SEC" +%H:%M:%S,%N | sed s/000000$//
}
FIRST=$3 ; (( FIRST += 0 ))
LAST=$4 ; (( LAST += 0 ))
(( FIRST > LAST )) || (( LAST == 0 ))&& LAST=4294967296
STRETCH=0
if echo $2 | egrep -q '^[[:digit:]]+/[[:digit:]]+$'
then
STRETCH=1
MUL="$(echo $2 | sed 's/\/.*$//')"
DIV="$(echo $2 | sed 's/^.*\///')"
else
ADD=$2 ; (( ADD += 0 ))
fi
dos2unix $1
cat $1 | while read LINE
do
echo $LINE | egrep -q '^[[:digit:]]+$' && CURR=$LINE
if (( CURR >= FIRST)) && (( CURR <=LAST )) &:[[:digit:]]{2}:[[:digit:]]{2},[[:digit:]]{3}[[:space:]]+-->[[:space:]]+[[:digit:]]{2}:[[:digit:]]{2}:[[:digit:]]{2},[[:digit:]]{3}$' ; }
then
FROM="$(echo $LINE | sed -r 's/[[:space:]]+.*$//')"
TO="$(echo $LINE | sed -r 's/^.*[[:space:]]+//')"
FROM=$(srt2msec $FROM)
TO=$(srt2msec $TO)
if (( STRETCH == 1 ))
then
(( FROM*=MUL )) ; (( FROM/=DIV ))
(( TO*=MUL )) ; (( TO/=DIV ))
else
(( FROM+=ADD ))
(( TO+=ADD ))
fi
FROM=$(msec2srt $FROM)
TO=$(msec2srt $TO)
echo "$FROM --> $TO"
else
echo $LINE
fi
done > /tmp/subrip.$$
cat /tmp/subrip.$$ > $1 ; rm /tmp/subrip.$$
unix2dos $1
- A hozzászóláshoz be kell jelentkezni