ďťż
 
 
   [+] Mencoder- kiepska jakość po konwersji DVD2XviD
 
 

Tematy

 
    
 

 

 

 

[+] Mencoder- kiepska jakość po konwersji DVD2XviD





bolo - 12-05-2009 18:27
Chciałbym się poradzić jak wykonać zadowalającą kopię filmu konwertując go, jak w tytule, z DVD do XviD?
Robię to Mencoderem z linii poleceń i zapewne przyczyna tkwi w niewłaściwej składni polecenia wykonawczego. O ile kodowanie jednoprzebiegowe mi się udaje zrobić w miarę do przyjęcia, to już jakość filmu kodowanego dwukrotnie jest gorsza niż poprzednia. Powinno być odwrotnie!
Konwersję z jednym przebiegiem wykonuję w ten sposób poniżej wymuszając lepszą jakość wysokim bitrate. Daje to jednak plik wielkości ~1GB.
mencoder MOVIE.VRO -ffourcc XVID -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1300 -oac mp3lame -srate 44100 -lameopts cbr:br=96 -o film.avi Poniżej załączam polecenia dla dwukrotnego przebiegu. Jako pierwsza kodowana jest jednak sama ścieżka dźwiękowa po czym proponowany jest współczynnik bitrate, w tym przypadku obrałem 826 dla uzyskania pliku o wielkości 650MB.
mencoder MOVIE.VRO -alang en -oac mp3lame -lameopts cbr:br=96 -ovc frameno -o frameno.avi

mencoder MOVIE.VRO -ffourcc XVID -oac copy -ovc lavc -lavcopts vcodec=mpeg4:vhq:vbitrate=826:vpass=1 -o /dev/null

mencoder MOVIE.VRO -ffourcc XVID -oac copy -ovc lavc -lavcopts vcodec=mpeg4:vhq:vbitrate=826:vpass=2 -o film.avi Co jest źle w konstrukcji tych poleceń, że nie wychodzi mi dobra jakość kopii xvid?



ilin - 12-05-2009 20:05
Zacznijmy od podstaw.

Chcesz zrobić divixa z dvd tak piszesz w tytule.

Co to jest więc MOVIE.VRO?

Skladnie to sobie na później zostawimy.



bolo - 12-05-2009 22:27

Zacznijmy od podstaw.

Chcesz zrobić divixa z dvd tak piszesz w tytule.

Co to jest więc MOVIE.VRO?
Dokładnie tak chcę zrobić, tzn. plik AVI o rozszerzeniu DVD, ripowany uprzednio z dekodera satelitarnego, przerobić na XviD. Jeśli chodzi o Twoje pytanie to nie dziwi mnie ono, bo sam z początku byłem zdziwiony, ale tak opisuje nagrania moja nagrywarka DVD. Dysponuje ona czterema stopniami konwersji przy tworzeniu nagrania. Nie określa kodeka, którym się posługuje tylko steruje się czasem nagrania, gdzie przedostatni z nich oferuje naprawdę b.dobrą jakość, ale ogranicza czas nagrania do dwóch godzin dla formatu pojemności płyty DVD. Na taką płytę można upakować jednak przynajmniej 5 filmów pełnometrażowych pod warunkiem ich wcześniejszego przekonwertowania. Stąd mój pomysł.
Jakość filmów zasysanych z sieci w formacie DivX nie różni się od pierwowzoru. W moim wykonaniu niestety tak, a szczególnie rzuca się w oczy przy dynamicznej akcji lub szybkich ruchach. Stąd podejrzenie, że zastosowałem niewłaściwe parametry w poleceniach dla Mencodera.



KeFaS - 13-05-2009 01:24
bolo, Twoja nagrywarka już kompresuje materiał jakimś tam swoim kodekiem, więc ponowna rekompresja wcześniej skompresowanego już filmu zawsze będzie powodować stratę jakości, niezależnie jaki kodek wybierzesz i jaki bitrate ustawisz.

No i co to znaczy:
Więc może sprecyzuj dokładnie w jakim formacie masz film z nagrywarki i jakim kodekiem jest zakodowany? No i jak (na co) go zrippowałeś wcześniej?

Poza tym:
Różni się. Porównaj sobie jakiegoś DivX-a/XviD-a (nawet 1.4GB z wysokim bitrate) z oryginałem na DVD to zobaczysz różnicę. DivX/XviD to kompresja stratna, więc zawsze jakość się trochę pogorszy, jednak często na małym TV/monitorze nie widać aż takiej "pikselozy", ale na większych (z większymi rozdzielczościami natywnymi) już tak. Jest jeszcze H.264/x264, który często stosuje się przy filmach HD, bo przy większej rozdzielczości oferuje lepszą jakość od XviD-a, przy tym samym rozmiarze (lub porównywalną jakość przy mniejszym rozmiarze), ale to też ciągle kompresja stratna.



ilin - 13-05-2009 07:26
Dobra rozumiem sytuację.

Najlepszą jakość przy niskim bitrate użyskasz używajac kodeka xvideo.Libavcodec jest szybszy ale przy mniejszych bitrate powoduje gorszą jakość.

Spróbuj takiego polecenia.(kodowanie dwuprzebiegowe kodekiem xvideo)

mencoder MOVIE.VRO -ovc xvid -xvidencopts me_quality=6:bitrate=826:pass=1 -oac copy -o /dev/null ; mencoder MOVIE.VRO -ovc xvid -xvidencopts me_quality=6:bitrate=826:pass=2 -oac mp3lame -lameopts cbr:br=96 -o film.avi



Akkon - 13-05-2009 17:34

Co jest źłe w konstrukcji tych poleceń, że nie wychodzi mi dobra jakość kopii xvid? Musisz zwiększyć bitrate, widać ten jest za mały.



bolo - 13-05-2009 19:23
Odpowiem najpierw KeFas-owi.
Namieszałem troszkę z tymi pojęciami .
AVI jest kontenerem multimedialnym więc chyba nie popełniam błędu jeśli nazwę plik filmu z nagrywarki plikiem AVI lecz oczywiście o rozszerzeniu .VRO .
Jaki kodek osługuje nagrywarkę, tego nie wiem, ale wiem napewno, że daje takie dziwne rozszerzenie VRO. Tak nagrany ~1,5godzinny film to ok.3,5GB. Dalej nagrywam go na płytę DVD, jezeli był zapisany na dysku nagrywarki, w trybie VR. Tak nagrana płyta daje się odczytać bez problemu innym odtwarzaczu DVD lub komputerze. Ja chcę z tego zrobić Xvid, żeby oszczędzić miejsca, i to się udaje tylko ta pikseloza...

Próbuję właśnie zrobić kompresję takim poleceniem Mencodera, które zaproponował mi ilin. Trwa to koszmarnie długo, bo już prawie 3godziny, ale jeśli efekt będzie zadowalający, to warto.



ilin - 13-05-2009 21:21
Masz tu polecenie przy użyciu kodeków libavcodec (lavc) przetestuj ale jakość będzie ciut gorsza niż xvidem.

mencoder MOVIE.VRO  -oac copy -aid 1 -ovc lavc -ofps 25 -ffourcc DX50 -lavcopts vcodec=mpeg4:trell:mbd=2:sc_threshold=1000000000:cgop:vbitrate=826:aspect=4/3:vpass=1
-o /dev/null ; mencoder  MOVIE.VRO -oac copy -aid 1 -ovc lavc -ofps 25 -ffourcc DX50 -lavcopts vcodec=mpeg4:trell:mbd=2:sc_threshold=1000000000:cgop:vbitrate=826:aspect=4/3:vpass=2 -oac mp3lame -lameopts cbr:br=96 -o film.avi Dlugość kodowania głównie zależy od mocy procesora.



bolo - 13-05-2009 22:34
Dziękuję ilin za pomoc.
Przetestowałem ten pierwszy z Twoich sposobów i muszę przyznać, że jakość się poprawiła. Okupiłem to długim czasem obróbki:
    lpierwsze przejście - 70min., drugie - 122min.
    3,4GB spakowało do 644MB.l
O to chodziło. Dzisiaj już nie zdążę zrobić drugim sposobem, ale dam znać jak wyszło. Pisałeś, że: i to jest prawda. Co się tyczy mojego sprzętu jest to laptop Toshiba L300 z procesorem:
    l2x Intel(R)Pentium(R)dual CPU 2370 @ 1,73GHzl
Mam pytanie czy te polecenia uwzględniają wykorzystanie pełnej mocy podwójnego procesora i jeśli nie to, czy jest sposób aby go zmusić do tego odpowiednim przełącznikiem komendy?



ilin - 14-05-2009 07:53
Ja koduję też na ciut słabszym procesorze intelcore2 1.6GHz na laptopie TOSHIBA L-40.
Kodowanie drugim sposobem (lavc) trwa u mnie krócej niż długość filmu) xvideo około dwa razy dłużej.

Kodek xwideo chyba jeszcze nie umie korzystać z dwóch rdzeni.
Libavcodec tak.
Polecenie na libavcodec z uwzględnieniem optymalizacji dla dwóch rdzeni.
mencoder MOVIE.VRO  -oac copy -aid 1 -ovc lavc -ofps 25 -ffourcc DX50 -lavcopts threads=2:vcodec=mpeg4:trell:mbd=2:sc_threshold=1000000000:cgop:vbitrate=826:aspect=4/3:vpass=1
-o /dev/null ; mencoder  MOVIE.VRO -oac copy -aid 1 -ovc lavc -ofps 25 -ffourcc DX50 -lavcopts threads=2:vcodec=mpeg4:trell:mbd=2:sc_threshold=1000000000:cgop:vbitrate=826:aspect=4/3:vpass=2 -oac mp3lame -lameopts cbr:br=96 -o film.avi



bolo - 14-05-2009 15:47
Odpowiem Tobie "na gorąco" ponieważ nie mam chwilowo czasu sprawdzić działanie drugiego rodzaju kodeka. Na to trzeba trochę czasu, którego akurat teraz mi brak. Nie szkodzi, co się odwlecze...
Widzę, że nieobcy Ci ten temat obróbki wideo. Szczerze mówiąc liczyłem na to, że ktoś taki się odezwie i udzieli konkretnej pomocy. Dzięki ;-)
Teraz pytanie:
- przełącznik threads=2
odnosi się do obsługi konwersji z wykorzystaniem 2 rdzeni procesora?
- przełącznik trell:mbd=2:sc_threshold=1000000000:cgop
za co odpowiada ten?



ilin - 14-05-2009 16:38
Powinienem Cie zagonić do czytania manuala od mencodera.
Co jak co ale co oznacza który parametr powinieneś sobie wyszukać.

Z man mencoder
trell
              Kwantyzacja  przeszukiwana  kratowo.  Funkcja ta znajdzie opty-
              malne kodowanie dla każdego bloku 8x8.  Kwantyzacja  przeszuki-
              wana  kratowo  jest po prostu dobrą optymalizacją, w sensie PSNR
              kontra  bitrate  (Zakładając,  że  nie  będzie  żadnych  błędów
              zaokrągleń mogących powstać w skutek działania IDCT, czyli oczy-
              wiście nie w tym przypadku.).  Po prostu znajduje blok dla mini-
              malnej ilości błędów i bitów*lambda.
                lambda
                      zmienna uzależniona od parametru kwantyzacji (QP)
                bits
                      ilość bitów potrzebna do zakodowania bloku
                error
                      suma kwadratów błędów kwantyzacji mbd=<0-2>
              Algorytm  decyzyjny  makrobloku  (tryb wysokiej jakości), koduje
              każdy makroblok we wszystkich trybach i wybiera  ten  najlepszy.
              Metoda  ta jest powolna, ale jej rezultatem jest lepsza jakość i
              mniejsza objętość pliku.
                0    Korzysta z mbcmp (domyślne).
                1    Wybiera tryb MB, który wymaga najmniejszej ilości  bitów
                      (=vhq).
                2    Wybiera  tryb  MB,  który  powoduje najmniejsze znieksz-
                      tałcenia tempa. sc_threshold=<-1000000000-1000000000>
              Próg do wykrywania  zmiany  sceny.  Libavcodec  wstawia  klatkę
              kluczową  jeżeli wykryje zmianę sceny.  Tą opcją możesz określić
              czułość tej detekcji.  -1000000000  oznacza,  że  zmiana  sceny
              wykrywana  jest  w  każdej  klatce, 1000000000 oznacza, że żadne
              zmiany nie będą wykryte (domyślnie: 0) Dla testów wcale nie trzeba wiele czasu.

Odcinasz sobie np jedno czy pieciominutowy kawalek filmu źródlowego (opcja -endpos ) i na nim testujesz poszczególne skladnie polecenia.



bolo - 15-05-2009 18:22

Powinienem Cie zagonić do czytania manuala od mencodera.
Co jak co ale co oznacza który parametr powinieneś sobie wyszukać.
Pojawiły się opcje, których wcześniej nie używałeś stąd moje pytanie, bo czyż nie lepiej skierować je do źródła? Zapomniałem o istnieniu tego manuala. Trudno mi się w nim tak w ogóle połapać ponieważ jego rozmiar jest imponujący, ponad 7tys. stron.
Przepraszam za kłopot.

Teraz następny problem z ostatnim kodowaniem lavc. Oto rezultat z konsoli:
~$ mencoder MOVIE.VRO -oac copy -o -ovc lavc -ofps 25 -ffourcc DX50 -lavcopts vcodec=mpeg4:trell:mbd=2:sc_threshold=1000000000:cgop:vbitrate=830:vpass=1
MEncoder dev-SVN-r26940 (C) 2000-2008 MPlayer Team
CPU: Intel(R) Pentium(R) Dual  CPU  T2370  @ 1.73GHz (Family: 6, Model: 15, Stepping: 13)
CPUflags: Type: 6 MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
Compiled with runtime CPU detection.
success: format: 0  data: 0x0 - 0xd8dd5000
MPEG-PS file format detected.
VIDEO:  MPEG2  720x576  (aspect 2)  25.000 fps  4505.6 kbps (563.2 kbyte/s)
[V] filefmt:2  fourcc:0x10000002  size:720x576  fps:25.000  ftime:=0.0400

No video encoder (-ovc) selected. Select one (see -ovc help).

Exiting...
marek@debian:~$ -o /dev/null ; mencoder  MOVIE.VRO -oac copy -o -ovc lavc -ofps 25 -ffourcc DX50 -lavcopts vcodec=mpeg4:trell:mbd=2:sc_threshold=1000000000:cgop:vbitrate=830:vpass=2 -oac mp3lame -lameopts cbr:br=96 -o film.avi
bash: -o: command not found
MEncoder dev-SVN-r26940 (C) 2000-2008 MPlayer Team
CPU: Intel(R) Pentium(R) Dual  CPU  T2370  @ 1.73GHz (Family: 6, Model: 15, Stepping: 13)
CPUflags: Type: 6 MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
Compiled with runtime CPU detection.
success: format: 0  data: 0x0 - 0xd8dd5000
MPEG-PS file format detected.
VIDEO:  MPEG2  720x576  (aspect 2)  25.000 fps  4505.6 kbps (563.2 kbyte/s)
[V] filefmt:2  fourcc:0x10000002  size:720x576  fps:25.000  ftime:=0.0400

No video encoder (-ovc) selected. Select one (see -ovc help). Nie mogę rozwikłać czego brakuje? Zainstalowane mam kodeki: libavcodec51 oraz libavcodec-dev. Czyżby chodziło o jeszcze inny?



ilin - 15-05-2009 19:04
No video encoder (-ovc) To odpowiedź.

A dokładnie
mencoder MOVIE.VRO -oac copy -o -ovc lavc

Co to -o robi w tym miejscu?

-o oznacza output czyli wskazanie na plik wyjśściowy.



bolo - 15-05-2009 20:42

No video encoder (-ovc) To odpowiedź. Tzn. co należy doinstalować?

Sam kombinowałem bo nie działało:
:~$ mencoder MOVIE.VRO  -oac copy -aid 1 -ovc lavc -ofps 25 -ffourcc DX50 -lavcopts threads=2:vcodec=mpeg4:trell:mbd=2:sc_threshold=1000000000:cgop:vbitrate=826:aspect=4/3:vpass=1
MEncoder dev-SVN-r26940 (C) 2000-2008 MPlayer Team
CPU: Intel(R) Pentium(R) Dual  CPU  T2370  @ 1.73GHz (Family: 6, Model: 15, Stepping: 13)
CPUflags: Type: 6 MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
Compiled with runtime CPU detection.

Exiting... (No output file specified, please see the -o option.)
marek@debian:~$ -o /dev/null ; mencoder  MOVIE.VRO -oac copy -aid 1 -ovc lavc -ofps 25 -ffourcc DX50 -lavcopts threads=2:vcodec=mpeg4:trell:mbd=2:sc_threshold=1000000000:cgop:vbitrate=826:aspect=4/3:vpass=2 -oac mp3lame -lameopts cbr:br=96 -o film.avi
bash: -o: command not found
MEncoder dev-SVN-r26940 (C) 2000-2008 MPlayer Team
CPU: Intel(R) Pentium(R) Dual  CPU  T2370  @ 1.73GHz (Family: 6, Model: 15, Stepping: 13)
CPUflags: Type: 6 MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
Compiled with runtime CPU detection.
success: format: 0  data: 0x0 - 0xd8dd5000
MPEG-PS file format detected.

Too many video packets in the buffer: (4096 in 8263195 bytes).
Maybe you are playing a non-interleaved stream/file or the codec failed?
For AVI files, try to force non-interleaved mode with the -ni option.
MPEG: No audio stream found -> no sound.
VIDEO:  MPEG2  720x576  (aspect 2)  25.000 fps  4505.6 kbps (563.2 kbyte/s)
[V] filefmt:2  fourcc:0x10000002  size:720x576  fps:25.000  ftime:=0.0400
Opening video filter: [expand osd=1]
Expand: -1 x -1, -1 ; -1, osd: 1, aspect: 0.000000, round: 1
==========================================================================
Opening video decoder: [mpegpes] MPEG 1/2 Video passthrough
VDec: vo config request - 720 x 576 (preferred colorspace: Mpeg PES)
Could not find matching colorspace - retrying with -vf scale...
Opening video filter: [scale]
The selected video_out device is incompatible with this codec.
Try appending the scale filter to your filter list,
e.g. -vf spp,scale instead of -vf spp.
VDecoder init failed :(
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
Selected video codec: [ffmpeg2] vfm: ffmpeg (FFmpeg MPEG-2)
==========================================================================
Forcing output FourCC to 30355844 [DX50].
VDec: vo config request - 720 x 576 (preferred colorspace: Planar YV12)
VDec: using Planar YV12 as output csp (no 0)
Movie-Aspect is 1.33:1 - prescaling to correct movie aspect.
videocodec: libavcodec (720x576 fourcc=30355844 [DX50])
[VE_LAVC] High quality encoding selected (non-realtime)!
2pass failed: filename=divx2pass.log
FATAL: Cannot initialize video driver.

Exiting...



ilin - 15-05-2009 20:48
Nie umiesz skopiować mojgo polecenia tylko kombinujesz własne i to źle :mrgreen:

; to nie jest opcja mencodera.
To znak basha który łaczy dwa polecenia w ten sposob że jak pierwsze zakończy działanie to dopiero uruchamia drugie.

Abyś dla dwóch przebiegów dwa razy nie musiał klepać polecenia tylko jak skończy pierwszy to zaczyna drugi.



bolo - 15-05-2009 20:50
~$ mencoder -ovc help
MEncoder dev-SVN-r26940 (C) 2000-2008 MPlayer Team
CPU: Intel(R) Pentium(R) Dual  CPU  T2370  @ 1.73GHz (Family: 6, Model: 15, Stepping: 13)
CPUflags: Type: 6 MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
Compiled with runtime CPU detection.

Available codecs:
  copy    - frame copy, without re-encoding. Doesn't work with filters.
  frameno  - special audio-only file for 3-pass encoding, see DOCS.
  raw      - uncompressed video. Use fourcc option to set format explicitly.
  nuv      - nuppel video
  lavc    - libavcodec codecs - best quality!
  vfw      - VfW DLLs, read DOCS/HTML/en/encoding-guide.html.
  qtvideo  - QuickTime DLLs, currently only SVQ1/3 are supported.
  libdv    - DV encoding with libdv v0.9.5
  xvid    - XviD encoding
  x264    - H.264 encoding lavc jak widać mam zainstalowany. Brakuje czegoś jeszcze?
Sam kombinowałem bo nie działało:
:~$ mencoder MOVIE.VRO  -oac copy -aid 1 -ovc lavc -ofps 25 -ffourcc DX50 -lavcopts threads=2:vcodec=mpeg4:trell:mbd=2:sc_threshold=1000000000:cgop:vbitrate=826:aspect=4/3:vpass=1
MEncoder dev-SVN-r26940 (C) 2000-2008 MPlayer Team
CPU: Intel(R) Pentium(R) Dual  CPU  T2370  @ 1.73GHz (Family: 6, Model: 15, Stepping: 13)
CPUflags: Type: 6 MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
Compiled with runtime CPU detection.

Exiting... (No output file specified, please see the -o option.)
marek@debian:~$ -o /dev/null ; mencoder  MOVIE.VRO -oac copy -aid 1 -ovc lavc -ofps 25 -ffourcc DX50 -lavcopts threads=2:vcodec=mpeg4:trell:mbd=2:sc_threshold=1000000000:cgop:vbitrate=826:aspect=4/3:vpass=2 -oac mp3lame -lameopts cbr:br=96 -o film.avi
bash: -o: command not found
MEncoder dev-SVN-r26940 (C) 2000-2008 MPlayer Team
CPU: Intel(R) Pentium(R) Dual  CPU  T2370  @ 1.73GHz (Family: 6, Model: 15, Stepping: 13)
CPUflags: Type: 6 MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
Compiled with runtime CPU detection.
success: format: 0  data: 0x0 - 0xd8dd5000
MPEG-PS file format detected.

Too many video packets in the buffer: (4096 in 8263195 bytes).
Maybe you are playing a non-interleaved stream/file or the codec failed?
For AVI files, try to force non-interleaved mode with the -ni option.
MPEG: No audio stream found -> no sound.
VIDEO:  MPEG2  720x576  (aspect 2)  25.000 fps  4505.6 kbps (563.2 kbyte/s)
[V] filefmt:2  fourcc:0x10000002  size:720x576  fps:25.000  ftime:=0.0400
Opening video filter: [expand osd=1]
Expand: -1 x -1, -1 ; -1, osd: 1, aspect: 0.000000, round: 1
==========================================================================
Opening video decoder: [mpegpes] MPEG 1/2 Video passthrough
VDec: vo config request - 720 x 576 (preferred colorspace: Mpeg PES)
Could not find matching colorspace - retrying with -vf scale...
Opening video filter: [scale]
The selected video_out device is incompatible with this codec.
Try appending the scale filter to your filter list,
e.g. -vf spp,scale instead of -vf spp.
VDecoder init failed :(
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
Selected video codec: [ffmpeg2] vfm: ffmpeg (FFmpeg MPEG-2)
==========================================================================
Forcing output FourCC to 30355844 [DX50].
VDec: vo config request - 720 x 576 (preferred colorspace: Planar YV12)
VDec: using Planar YV12 as output csp (no 0)
Movie-Aspect is 1.33:1 - prescaling to correct movie aspect.
videocodec: libavcodec (720x576 fourcc=30355844 [DX50])
[VE_LAVC] High quality encoding selected (non-realtime)!
2pass failed: filename=divx2pass.log
FATAL: Cannot initialize video driver.

Exiting... [/quote]



ilin - 15-05-2009 20:55
Nic ci nie brakuje.
Składnia jest błedna.

Kombinuj dlaczego.
Podalem Ci wszystkie info.
Jak tego nie załapiesz to sie nie nauczysz.



bolo - 15-05-2009 20:59

Nic ci nie brakuje.
Składnia jest błedna.

Kombinuj dlaczego.
Podalem Ci wszystkie info.
Jak tego nie załapiesz to sie nie nauczysz.
Ale to Ty podałeś mi taką składnię. Nie wychodzi, jak widać w logu ostatniego topika.



ilin - 15-05-2009 21:03
Przekopiuj skladnie dokladnie a nie obcinaj to nie będzie błędow. :mrgreen:



bolo - 16-05-2009 12:20

Przekopiuj skladnie dokladnie a nie obcinaj to nie będzie błędow. :mrgreen: Nie obcinam, nie denerwuj się, kopiuję Twoje polecenie z tego topika (w całości!) i cały czas jest błąd. Pewnie masz rację, że w składni.
~$ mencoder MOVIE.VRO  -oac copy -aid 1 -ovc lavc -ofps 25 -ffourcc DX50 -lavcopts threads=2:vcodec=mpeg4:trell:mbd=2:sc_threshold=1000000000:cgop:vbitrate=826:aspect=4/3:vpass=1
MEncoder dev-SVN-r26940 (C) 2000-2008 MPlayer Team
CPU: Intel(R) Pentium(R) Dual  CPU  T2370  @ 1.73GHz (Family: 6, Model: 15, Stepping: 13)
CPUflags: Type: 6 MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
Compiled with runtime CPU detection.

Exiting... (No output file specified, please see the -o option.)
marek@debian:~$ -o /dev/null ; mencoder  MOVIE.VRO -oac copy -aid 1 -ovc lavc -ofps 25 -ffourcc DX50 -lavcopts threads=2:vcodec=mpeg4:trell:mbd=2:sc_threshold=1000000000:cgop:vbitrate=826:aspect=4/3:vpass=2 -oac mp3lame -lameopts cbr:br=96 -o film.avi Wklejenie w konsolę pomimo skopiowania (bez kombinacji) całego Twojego polecenia daje od razu taki rezultat. Powtarzam samo wklejenie w konsolę. Spróbuj odpalić to na swoim lapku jeżeli pójdzie, to znaczy nie ma błędu składni lecz przyczyna tkwi gdzieś po mojej stronie. :mrgreen:



ilin - 16-05-2009 13:06
Nawet błedy Ci wypisuje

Dajesz tak
mencoder MOVIE.VRO  -oac copy -aid 1 -ovc lavc -ofps 25 -ffourcc DX50 -lavcopts threads=2:vcodec=mpeg4:trell:mbd=2:sc_threshold=1000000000:cgop:vbitrate=826:aspect=4/3:vpass=1 a w pierwszej części mojego polecenia jest tak
mencoder MOVIE.VRO  -oac copy -aid 1 -ovc lavc -ofps 25 -ffourcc DX50 -lavcopts threads=2:vcodec=mpeg4:trell:mbd=2:sc_threshold=1000000000:cgop:vbitrate=826:aspect=4/3:vpass=1
-o /dev/null Napisalo (No output file specified, please see the -o option.) Nie sprecyzowano pliku wyjściowego (wyjscia w tym przypadku /dev/null)

To dotyczy pierwszego przebiegu.

Najlepiej przekopiuj sobie całe moje polecenie do pliku tekstowego bo z tagów źle sie czyta predzej zauważysz błedy.



bolo - 16-05-2009 13:51
Z tagów czyta dobrze. Próbowałem nawet wypisywać ręcznie w edytorze tekstu, według Twojego wzoru, i to nie pomaga. Nie jestem pewien czy tak powinno być, tzn. występuje podwójna spacja na samym początku: MOVIE.VRO  -oac Pisząc z jedną spacją wychodzi to:
:~$ mencoder MOVIE.VRO -oac copy -aid 1 -ovc lavc -ofps 25 -ffourc DX50 -lavcopts threads=2:vcodec=mpeg4:trell:mbd=2:sc_threshold=1000000000:cgop:vbitrate=830:aspect=4/3:vpass=1 -o /dev/null
MEncoder dev-SVN-r26940 (C) 2000-2008 MPlayer Team
CPU: Intel(R) Pentium(R) Dual  CPU  T2370  @ 1.73GHz (Family: 6, Model: 15, Stepping: 13)
CPUflags: Type: 6 MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
Compiled with runtime CPU detection.
-ffourc is not an MEncoder option

Exiting... (error parsing command line) Dlaczego -ffourc nie jest opcją Mencodera?



ilin - 16-05-2009 14:48
Jak nie urok to biegunka.

W opcji -ffourcc barakuje jednego c i Ciebia :mrgreen:

Tak ma być pierwszy przebieg.
mencoder MOVIE.VRO -oac copy -aid 1 -ovc lavc -ofps 25 -ffourcc DX50 -lavcopts threads=2:vcodec=mpeg4:trell:mbd=2:sc_threshold=1000000000:cgop:vbitrate=826:aspect=4/3:vpass=1 -o /dev/null



bolo - 17-05-2009 12:31
Teraz jest dobrze! :-) Nareszcie wyjaśniona kwestia składni polecenia. Swoją drogą konsola to znakomite narzędzie tylko nie toleruje najmniejszego błędu. Głupia literówka i wszystko się chrzani.
Wracając do tematu kodowania, właśnie zrobiłem próbę z opcją -endpos i wideo wyszło dobrej jakości natomiast brak jest audio,? Może brak fonii jest wynikiem błędu składni dotyczący jej kodowania? Robiłem według tego schematu: mencoder VR_MOVIE.VRO -endpos 120 -oac copy -aid 1 -ovc lavc -ofps 25 -ffourcc DX50 -lavcopts  threads=2:vcodec=mpeg4:trell:mbd=2:sc_threshold=1000000000:cgop:vbitrate=900:aspect=4/3:vpass=1 -o /dev/null ; mencoder  VR_MOVIE.VRO -endpos 120 -oac copy -aid 1 -ovc lavc -ofps 25 -ffourcc DX50 -lavcopts threads=2:vcodec=mpeg4:trell:mbd=2:sc_threshold=1000000000:cgop:vbitrate=900:aspect=4/3:vpass=2 -oac mp3lame -lameopts cbr:br=96 -o film.avi Następnie kodowałem ponownie już bez opcji endpos i niestety brak dźwięku w pliku wyjściowym. Konsola daje to:
Too many video packets in the buffer: (4096 in 8263195 bytes).
Maybe you are playing a non-interleaved stream/file or the codec failed?
For AVI files, try to force non-interleaved mode with the -ni option.
MPEG: No audio stream found -> no sound.
VIDEO:  MPEG2  720x576  (aspect 2)  25.000 fps  4505.6 kbps (563.2 kbyte/s)
[V] filefmt:2  fourcc:0x10000002  size:720x576  fps:25.000  ftime:=0.0400
Opening video filter: [expand osd=1]
Expand: -1 x -1, -1 ; -1, osd: 1, aspect: 0.000000, round: 1 Może Tobie łatwiej zorientować się w poprawności składni dotyczącej dźwięku?

Moja nagrywarka ma opcję najwyższej jakości nagrywania z prędkością 8Mb/s. Obraz jest rzeczywiście super, ale pełnometrażowy film zajmuje ~7GB. Aby to nagrać na DVD trzeba podzielić na dwie części, to nie problem, ale jak skleić je ponownie do kupy, przy założeniu dalszej konwersji divx Mencoderem? Czy Mencoder dysponuje taką funkcją, a może Avidemux ?



ilin - 17-05-2009 12:46
Probkę pięciominutową stworzysz

mencoder film.x -endpos 00:05:00 -ovc copy -oac copy -o Film5min.x Drugą część pytania nie do końca rozumiem.

Zakładam ze aby zdjąć film z nagrywarki do kompa używasz plyt (nie ma innego sposobu?)

Jeśli podzielisz na dwie części to mozesz mencoderem obrobić je oddzielnie(muszą mieć identyczne parametry ,tym samym poleceniem je przekodować)

Potem połączysz.
mencoder -idx 1.avi 2.avi -ovc copy -oac copy -o Film_połaczony.avi



bolo - 17-05-2009 13:09

Probkę pięciominutową stworzysz

mencoder film.x -endpos 00:05:00 -ovc copy -oac copy -o Film5min.x
Dobrze, ale po co mi kopia ja chcę mieć próbkę kodowania dlatego zastosowałem docelowe polecenie z opcją endpos.
Jednak prawidłowo zrozumiałeś! O to co napisałeś dalej właśnie pytałem. :-D
Filmy z nagrywarki przerzucam przy pomocy płyty DVD.

Proszę spójrz jeszcze raz na składnię dotyczącą audio, bo jednak nie znajduje streamu audio. W poprzednim topiku dałem fragment logu konsoli przy kodowaniu już bez opcji endpos. Teraz daję listę dostęp[nych kodeków audio:
:~$ mencoder -oac help
MEncoder dev-SVN-r26940 (C) 2000-2008 MPlayer Team
CPU: Intel(R) Pentium(R) Dual  CPU  T2370  @ 1.73GHz (Family: 6, Model: 15, Stepping: 13)
CPUflags: Type: 6 MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
Compiled with runtime CPU detection.

Available codecs:
  copy    - frame copy, without re-encoding (useful for AC3)
  pcm      - uncompressed PCM audio
  mp3lame  - cbr/abr/vbr MP3 using libmp3lame
  lavc    - FFmpeg audio encoder (MP2, AC3, ...)
  twolame  - Twolame MP2 audio encoder
  faac    - FAAC AAC audio encoder



ilin - 17-05-2009 15:06
Dobrze, ale po co mi kopia ja chcę mieć próbkę kodowania dlatego zastosowałem docelowe polecenie z opcją endpos Abyś na tym pieciominutowym kawalku mógł potestować różne polecenia i wybrać takie ktore będzie dla Ciebie najbardziej odpowiednie.

W składni jest bład.

Dwa razy jest ujete audio najpierw -oac copy i w tym samym poleceniu -oac mp3lame -lameopts cbr:br=96 -oac output audio codec czyli wyjscie na kodek audio.

Mencoder dostał podwójne polecenie i kazał się pocałować w Dxxx :D



bolo - 17-05-2009 19:30

W składni jest bład.
Dwa razy jest ujete audio najpierw -oac copy
i w tym samym poleceniu -oac mp3lame -lameopts cbr:br=96 -oac output audio codec czyli wyjscie na kodek audio.
Mencoder dostał podwójne polecenie i kazał się pocałować w Dxxx :D Rzeczywiście a ja tego nie dostrzegłem. Już poprawione! Ostatecznie ma mieć taką składnię:
mencoder MOVIE.VRO -oac copy -aid 1 -ovc lavc -ofps 25 -ffourcc DX50 -lavcopts  threads=2:vcodec=mpeg4:trell:mbd=2:sc_threshold=1000000000:cgop:vbitrate=900:aspect=4/3:vpass=1 -o /dev/null ; mencoder MOVIE.VRO -ovc lavc -ofps 25 -ffourcc DX50 -lavcopts threads=2:vcodec=mpeg4:trell:mbd=2:sc_threshold=1000000000:cgop:vbitrate=900:aspect=4/3:vpass=2 -oac mp3lame -lameopts cbr:br=96 -o film.avi
Ponieważ z bólami lecz wreszcie ustalona została poprawna wersja finalna dla polecenia kodowania przy użyciu kodeka libavcodec, dodatkowo z użyciem współczynnika uruchamiającego moc obliczeniową obu procesorów (jak w moim przypadku), mógłbym powiedzieć już pas. Nie wszystko jednak jest dla mnie jasne z tymi opcjami mencodera. Czytałem man mencoder i zwątpiłem czy rzeczywiście opcja threads=2 włącza do pracy oba procesory? Z tej definicji nie bardzo to wiadomo:
threads=<1-8>
              Maksymalna  liczba użytych wątków (domyślnie: 1).  Może mieć de-
              likatnie negatywny wpływ na przewidywanie ruchu.

threads=<1-4>
              Dzieli  każdą klatkę na paski i koduje je równolegle (domyślnie:
              1).  Pozwala też na wielowątkowe dekodowanie  jeśli  dekoder  to
              umożliwia  (lavc  nie).  Lekko zmniejsza kompresję.  Wymaga żeby
              libx264 była skompilowana z obsługą pthread; jeśli tak nie  jest
              opcja  ta  wyświetli  ostrzeżenie  i  włączy  paski  ale  nie
              wielowątkowość. Poza tym nie znalazłem w manualu objaśnienia dla aid 1. Możesz napisać na co ta opcja jeśli występuje ona w pierwszym przebiegu, gdzie stream audio jest wyłącznie kopiowany?



ilin - 17-05-2009 19:45
To aid mozesz wywalić calkiem pojdzie i bez tego.

Co do threads nie analizowalem tego.
Zaczerpnąlem to z jakiejś nakladki.
Porownałem procesy przy zaznaczonej wieloprocesorowości i nie zaznaczonej.
Rózniły się właśnie tym.

Tu tez masz porównanie
http://forum.slysoft.com/showthread.php?t=12678



bolo - 17-05-2009 19:51

To aid mozesz wywalić calkiem pojdzie i bez tego. Wolałem się upewnić. Co do reszty, rozumiem i dziękuję za wyjaśnienia!

Ostatnie pytanie, bo już nie chcę Cię męczyć tym mencoderem, jaki Ty stosujesz kodek, z którego jesteś najbardziej zadowolony?



ilin - 17-05-2009 19:56
To zależy od sytuacji.
Co chcę kodować.

Najlepsza jakość przy malych plikach jest xvideo ale kodowanie trwa dluzej.
Jeszcze mniejsze pliki można uzyskać stosujac kodowanie do x264 ale to można do emerytury czekać aż się przekoduje.

http://forum.dug.net.pl/viewtopic.php?id=14066

Mozesz się również z tym wątkiem zapoznać.



bolo - 17-05-2009 21:19

http://forum.dug.net.pl/viewtopic.php?id=14066
Możesz się również z tym wątkiem zapoznać.
Na pewno to zrobię, ale tymczasem bardzo dziękuję Tobie za cierpliwość i przybliżenie mi tego tematu! Słowo daję, że bez tej pomocy niewiele sam bym dokonał.
Jak dla mnie temat rozwiązany.



ilin - 18-05-2009 08:16
Jeszcze można by sprobować zmniejszyć pliki wynikowe poprzez przeskalowanie obrazu.
Zakładam ze materiał źródlowy masz w rozdzielczości dvd czyli 720x576 w divixach takie rozdzielczości praktycznie nie występuja.
Można by dać do 640x480 albo jeszcze mniejsza.

Kwestia przetestowania jak to wygladalo by.



bolo - 18-05-2009 15:16

Jeszcze można by sprobować zmniejszyć pliki wynikowe poprzez przeskalowanie obrazu.
Zakładam ze materiał źródlowy masz w rozdzielczości dvd czyli 720x576 w divixach takie rozdzielczości praktycznie nie występuja.
Można by dać do 640x480 albo jeszcze mniejsza.

Kwestia przetestowania jak to wygladalo by.
Wiesz tego nie brałem pod uwagę, ale spróbować nie szkodzi.
Materiał wyjściowy mam, jak prawidłowo założyłeś, w rozdzielczości 720x576. Rozmiar pliku końcowego można zmiejszyć w ten proponowany przez Ciebie sposób lecz czy przy okazji nie pogorszy się jakość? Kompresuję nie po to, aby oglądać w komputerze tylko na ekranie TV. Rozciągając teraz ten obraz o zmiejszonej rozdzielczości na pełny ekran spowoduję jego pogorszenie, większą pikselozę. A może się mylę?
W sumie ważniejsze jest przyjęcie odpowiedniego współczynnika bitrate, gdyż głównie to on steruje "wagą" pliku wyniikowego. A tak przy okazji, jak sobie radzisz z obliczaniem birate ? Jest taka opcja potrójnego kodowania mencoderem, gdzie pierwszy przebieg to wyłączna kompresja ścieżki audio. Po zakończeniu tego przebiegu podaje proponowany bitrate dla 650, 700, 800MB . Ja sobie raz ustaliłem dla 3,4GB bitrate= 826 kompresujący do 700MB. Teraz kiedy zapoznałeś mnie z innymi metodami kodowania nie stosuję już tamtego sposobu. Najwygodniej byłoby wrzucić funkcję
-endpos 700mb wtedy napewno zmieści się na CD, ale napewno też utnie końcówkę. Jakie są zatem inne sposoby obliczania bitrate?



ilin - 18-05-2009 15:50
W zasadzie to znam właśnie tylko tę opcję do obliczania bitrate w mencoderze.

mencoder film.x -oac copy -ovc frameno -o /dev/null Ja to robię bardziej na sposob "czasowy".

Testuję na 1 czy 5 minutowym kawalku i potem patrzę ile zajmuje 1min filmu.
ÂŁatwo obliczyć ile cały będzie ważył.

Co do rescalowania to warto sprobować. zrobić tak jeden film wtedy zobaczysz jaka jest oszczędność na wadze i jakie pogorszenie na tv.
Wtedy sam zdecydujesz.



bolo - 18-05-2009 16:05
Bardzo cenne wskazówki! Wypada mi raz jeszcze za nie podziękować ;-)



Akkon - 18-05-2009 19:18

Rozmiar pliku końcowego można zmiejszyć w ten proponowany przez Ciebie sposób lecz czy przy okazji nie pogorszy się jakość? Pogorszy się tak jak pogarsza się w skutek każdego kodowania. Nie jest to więc kwestia pogorszenia-niepogorszenia, tylko takiego pogorszenia, które będzie najmniej dla ludzkiego oka zauważalne. I tutaj istnieje wiele sposób na minimalizowanie tego pogorszenia, przy jednoczesnym zmniejszeniu wielkości pliku wynikowego. Np. jeśli kodujemy film z formatu dvd, to najpierw obcinamy czarne pionowe pasy na górze i dole i dopiero tak przycięty obraz skalujemy do wybranego formatu. I znów sam format nie jest tu najważniejszy, tylko odpowiednio dobrane do niego proporcje.

Co do sposobów szacowania czasu, to oczywiście istnieją o wiele szybsze sposoby obliczania bitrate. Wystarczy skorzystać z gotowych narzędzi. To wszystko zostało już bardzo szczegółowo opisane kiedyś TUTAJ.



bolo - 19-05-2009 17:14

[To wszystko zostało już bardzo szczegółowo opisane kiedyś TUTAJ. Myślałem, że już dostatecznie na ten temat się dowiedziałem, a tu proszę jaki cenny link podałeś. Rzec można kompendium wiedzy na temat mencodera i kodowania dla swoich potrzeb. Super sprawa, jeżeli ktoś chce się nim bawić znajdzie tam co trzeba w dodatku opracowane bardzo przejrzyście i przyjaźnie. Jestem pod wrażeniem Waszej wiedzy ilin i Akkon. Bardzo dziękuję za pomoc.



Akkon - 19-05-2009 21:49

Myślałem, że już dostatecznie na ten temat się dowiedziałem, a tu proszę jaki cenny link podałeś. Rzec można kompendium wiedzy na temat mencodera i kodowania dla swoich potrzeb. Super sprawa, jeżeli ktoś chce się nim bawić znajdzie tam co trzeba w dodatku opracowane bardzo przejrzyście i przyjaźnie. Jestem pod wrażeniem Waszej wiedzy ilin i Akkon No teraz to mi tak posłodziłeś, że chyba mnie zemdli :mrgreen: Dzięki za miłe słowa, ale z tą wiedzą to trochę przesadziłeś (mam na myśli oczywiście siebie, bo Ilin to inna liga). A tak na poważnie, mplayer/mencoder to naprawdę potężne i wspaniałe narzędzia. Warto je bliżej poznać i testować. A Ciebie zachęcam do tego. Może przyczynisz się do rozbudowanie informacji zawartych w tamtym wątku. W moich zamierzeniach miał to być początek zbudowania solidnego poradnika, ale zabrakło czasu.

Do kompletu informacji na temat tych programów dorzucam jeszcze:
http://www.mplayerhq.hu/DOCS/HTML/pl/
http://mplayer.konopelski.info/
http://bokorn.uw.hu/linux/dmencoder/

Powodzenia w kodowaniu.
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • minister.pev.pl

  •  

     


     

     
    Copyright 2003. MĂłj serwis