Jest to polecenie mjpegtools, które można uruchomić w bezpłatnym dostawcy hostingu OnWorks przy użyciu jednej z naszych wielu bezpłatnych stacji roboczych online, takich jak Ubuntu Online, Fedora Online, emulator online systemu Windows lub emulator online systemu MAC OS
PROGRAM:
IMIĘ
mjpegtools — wprowadzenie do narzędzi MJPEG
Wprowadzenie
Zapisałem te rzeczy, bo miałem mnóstwo kartek z notatkami. To powinno być
swego rodzaju podsumowanie wiedzy zgromadzonej w długim okresie czasu. Andrew Stevensa
pomagał w kodowaniu oraz posiadał wiedzę i wskazówki dotyczące VCD.
Mjpegtools to zestaw programów umożliwiających nagrywanie, odtwarzanie, edycję i ewentualnie format MPEG
kompresja audio i wideo pod Linuksem.
Chociaż jest przeznaczony głównie do użytku z płytami do przechwytywania/odtwarzania opartymi na Zoran
ZR36067 Układ kodeka MJPEG Narzędzia mjpegtools można łatwo wykorzystać do przetwarzania i kompresji wideo MJPEG
strumienie przechwycone za pomocą xawtv przy użyciu prostych urządzeń buforujących ramkę.
HOWTO dla narzędzi mających na celu wprowadzenie do narzędzi MJPEG i
tworzenie filmów MPEG 1/2. VCD, SVCD i DVD oraz transkodowanie istniejących plików MPEG
strumieni.
Aby uzyskać więcej informacji na temat programów, przeczytaj odpowiednią stronę podręcznika.
Achtung es gibt auch eine deutsche Version bei:
Istnieje również strona podręcznika tego tekstu. Możesz go przeczytać za pomocą „man mjpegtools”, jeśli jest zainstalowany.
Mamy również wersję informacyjną, z którą powinieneś móc ją przeczytać
Wersja tekstowa tego tekstu jest dostępna poprzez cvs. Powinieneś dostać go z archiwum tar lub
prekompilowany pakiet (RPM i deb).
Na poniższym obrazku widać typowy przebieg pracy podczas nagrywania wideo, wycinania go
potem i zakoduj. Na obrazku widać także połączenia z innymi programami.
Te części są w kolorze szarym. Części zaznaczone na niebiesko można wykonać za pomocą narzędzia mjpegtools.
Proces kodowania wideo
Nieposortowana lista przydatnych wskazówek
Musisz skompilować i zainstalować pakiet mjpeg_play, w tym celu przeczytaj README i
INSTALL.real i postępuj zgodnie ze wskazówkami zawartymi w skrypcie konfiguracyjnym. Jeśli nie chcesz kompilować
możesz pobrać pakiet mjpeg .RPM lub .DEB z Sourceforge lub, jeśli to możliwe, użyć
ten, który jest dostarczany z Twoją dystrybucją.
W katalogu scripts/ znajduje się skrypt. Ten skrypt jest czymś, co pokazuje ci drogę
to może być zrobione. Tworzy także (w pewnych okolicznościach) filmy, które wyglądają całkiem nieźle.
Lepsze filmy uzyskasz tylko poprzez dostrojenie parametrów.
Jeśli używasz jądra Linuksa z serii 2.4, zazwyczaj będziesz musiał załadować sterowniki
dla kart Buz, DC10 lub LML33. Musisz uruchomić skrypt aktualizacji udostępniający jako opcję
nazwę posiadanej karty. Skrypt znajduje się zwykle w katalogu /usr/src/driver-zoran/. The
Sterownik jądra zoran poniżej jądra 2.4.4 nie działa. Musisz użyć sterownika
dostępne od:
W wersji 2.6. Jądro Linuksa to sterownik dołączonych kart Zoran, wystarczy go wykonać
upewnij się, że jest poprawnie załadowany. Jeśli masz maszynę x64 i jądro nowsze niż
2.6.30 będziemy szczęśliwi, jeśli dowiesz się, że możesz nagrywać z karty opartej na zoranie. Jestem
nie jestem pewien, czy ta kombinacja działa.
Sterownik do karty Matrox Marvel również działa, więcej informacji na ten temat:
Jeśli skompilujesz narzędzia na komputerze opartym na P6 (PPro, P-II, P-III, P-4, Athlon, Duron)
to nigdy nie próbuj pozwolić im działać na komputerze opartym na P5 (Pentium, Pentium-MMX, K6, K6-x,
Cyrix, Via, Winchip). Dostaniesz „nielegalną instrukcję” i program nie będzie działał. To
jest taki sam również w przypadku nowszych procesorów. Jeśli korzystasz z określonych optymalizacji, pamiętaj o nich.
Jeśli lav2yuv zrzuci rdzeń, jedną z możliwych przyczyn jest brak obsługi dv. Aby to włączyć
upewnij się, że w systemie jest zainstalowana biblioteka libdv. Będzie to konieczne, jeśli używasz
aparatu cyfrowego (lub konwertera analogowo-cyfrowego, takiego jak Canopus ADVC100 i konwersji
dv avi do formatu MPEG.
Uruchom xawtv i zobacz, czy pojawi się obraz. Jeśli chcesz korzystać z odtwarzania sprzętowego nagranych plików
strumieniowe, musisz raz uruchomić xawtv (działa każda aplikacja telewizyjna), aby móc odtwarzać strumienie
z powrotem. Powinieneś także sprawdzić ustawienia swojego miksera w karcie dźwiękowej. Jeśli używasz v4l2
powinieneś dać mplayerowi szansę obejrzenia obrazu
Jeśli skompilujesz narzędzia na platformie innej niż Linux, nie wszystkie narzędzia będą działać.
Na przykład Mjpegtools w systemie OS/X nie będzie obsługiwał V4L (video4linux).
Nigdy nie próbuj zatrzymywać ani uruchamiać aplikacji telewizyjnej, gdy działa lavrec. Jeśli uruchomisz lub zatrzymasz
Aplikacja telewizyjna lavrec przestanie nagrywać lub Twój komputer może się „zamrozić”. To jest
problem v4l (video4linux).
Ten problem został rozwiązany w wersji v4l2. Jeśli używasz v4l2, możesz nagrać wideo i zatrzymać i
uruchamiaj aplikację telewizyjną, kiedy tylko chcesz. Ale v4l2 jest obecnie (7 stycznia 2003) tylko
obsługiwane dla kart opartych na Zoran (BUZ, DC10, DC10+, LML33) jeśli używasz sterownika CVS
z mjpeg.sf.net oznaczony tagiem ZORAN_VIDEODEV_2. Ten sterownik działa tylko z
Jądro 2.4.20 i jądro rozwojowe 2.5.*.
Jeszcze jedna rzecz na temat danych, które otrzymujesz, zanim zaczniemy:
Dźwięk: (częstotliwość próbkowania * kanały * rozmiar bitów) / (8 * 1024)
Jakość CD: (44100 próbek/s * 2 kanały * 16 bitów) / (8 * 1024)=172,2 kB/s
8 * 1024 konwertuje wartość z bitów/s na kByte/s
Wideo: (szerokość * wysokość * liczba klatek na sekundę * jakość) / (200 * 1024)
PAL HALF Rozmiar: (352 * 288 * 25 * 80) / (200 * 1024) = 990 kB/s
PAL PEŁNY rozmiar: (720 * 576 * 25 * 80) / (200 * 1024) = 4050 kB/s
Rozmiar NTSC HALF: (352 * 240 * 30 * 80) / (200 * 1024) = 990 kB/s
NTSC PEŁNY rozmiar: (720 * 480 * 30 * 80) / (200 * 1024) = 4050 kB/s
1024 konwertuje bajty na kilobajty. Nie na każdej karcie można zapisać wspomniany rozmiar. The
Na przykład Buz i Marvel G400 mogą nagrywać tylko w rozmiarze 720x576 przy użyciu opcji -d 1,
DC10 rejestruje rozmiar 384x288 przy użyciu opcji -d 2.
Po dodaniu szybkości przesyłania danych audio i wideo tyle właśnie musi być w stanie zapisać Twój dysk twardy
ciągłe przesyłanie strumieniowe, w przeciwnym razie utracisz klatki.
Jeśli chcesz pobawić się z --mjpeg-rozmiar-bufora. Pamiętaj, że wartość powinna wynosić co najmniej
na tyle duży, że zmieści się w nim jedna rama. Rozmiar jednej ramki to: (szerokość * wysokość * jakość
) / (200 * 1024) = kB Jeśli bufor jest za mały, obliczenie szybkości nie pasuje do żadnego
więcej i może wystąpić przepełnienie bufora. Maksymalna wartość to 512kB.
Jak działa wideo i różnice między typami wideo, wyjaśniono tutaj:
Dowiesz się tam również, jak tworzyć nieruchome obrazy MPEG dla VCD/SVCD.
Dobry opis DV (Digital Video) można znaleźć tutaj:
Trochę książki we znaleziono przydatne
napisane po angielsku:
Cyfrowe wideo i HDTV autorstwa Charlesa Poytona (ISBN 1-55860-792-7)
Cyfrowa kompresja wideo autorstwa Petera Symesa (ISBN 0-07-142487-3)
Film zdemistyfikowany przez Keitha Jacka ( ISBN 1-878707-56-6 )
napisane po niemiecku:
Fernsehtechnik von Rudolf Maeusl (ISBN 3-7785-2374-0)
Professionelle Videotechnik – analogowa i cyfrowa Grundlagen von U. Schmidt (ISBN
3-540-43974-9)
Digitale Film- und Videotechnik von U. Schmidt (ISBN 3-446-21827-0)
Jeśli znasz jakąś inną, naprawdę dobrą książkę na ten temat, napisz do nas!
Nagrywanie filmów
Ławrek przykłady
Nagrywanie za pomocą lavreca wygląda następująco:
> Ławrek -f a -i P -d 2 nagranie.avi
Powinieneś zacząć nagrywać teraz,
-fa
użyj AVI jako formatu wyjściowego,
-i P
użyj jako źródła wejściowego wejścia SVHS-In w formacie PAL,
-d 2
rozmiar zdjęć jest o połowę mniejszy (352x288)
nagranie.avi
nazwa utworzonego pliku.
Nagrywanie kończy się naciśnięciem Ctrl-C (na klawiaturach niemieckich: Strg-C). Czasami używa
-f A zamiast -f a może być konieczne
Inny przykład:
> Ławrek -f q -i n -d 1 -q 80 -s -l 80 -R l -U nagranie.avi
Powinieneś zacząć nagrywać teraz,
-fq
użyj Quicktime jako formatu wyjściowego,
-W
użyj wejścia kompozytowego w formacie NTSC,
-d 1
nagrywaj zdjęcia w pełnym rozmiarze (640x480)
-q 80
ustaw jakość na 80% przechwytywanego obrazu
-s
użyj trybu stereo (domyślnie mono)
-80
podczas nagrywania ustaw poziom nagrywania na 80% maksymalnego
-R l
ustaw źródło nagrywania na Line-In
-U
Dzięki temu lavrec używa do nagrywania odczytu zamiast mmap, jest to potrzebne, jeśli Twój dźwięk
karta nie obsługuje mmap do nagrywania.
Ustawienie miksera nie działa z każdą kartą dźwiękową. Jeśli nagrywasz na 2 różnych
ustawieniach i oba nagrania są jednakowo głośne, należy skonfigurować mikser z mikserem
program. Następnie powinieneś użyć -l -1 opcja podczas nagrywania za pomocą lavrec
Rozmiar obrazu zależy od używanej karty. W pełnym rozmiarze (-d 1) otrzymujesz je
rozmiary obrazu: BUZ i LML33: 720x576, DC10 i DC30: 768x576
Inny przykład:
> Ławrek -w -f a -i S -d 2 -l -1 rekord%02d.avi
Powinien rozpocząć nagrywanie,
-w
Oczekuje na uruchomienie potwierdzenia użytkownika (naciśnij Enter)
-fa
użyj AVI jako formatu wyjściowego,
-Jest
użyj wejścia SECAM SVHS (możliwe jest również nagrywanie w formacie SECAM Composite: -is)
-d 2
rozmiar zdjęć jest o połowę mniejszy
-l -1
nie dotykaj ustawień miksera
rekord%02d.avi
Tutaj lavrec tworzy pierwszy plik o nazwie record00.avi, gdy plik osiągnie rozmiar
1.6 GB (po około 20 minutach nagrywania) rozpoczyna nową sekwencję o nazwie record01.avi i
i tak dalej, aż do zatrzymania nagrywania lub zapełnienia dysku. Wraz z wydaniem wersji 1.9.0
Wersja mjpegtools obsługuje pliki AVI większe niż 2 GB. Zatem ta opcja jest obecna
dla kompatybilności.
Inny przykład:
> Ławrek -f a -i t -q 80 -d 2 -C Europa-Zachód:SE20 test.avi
Powinieneś zacząć nagrywać teraz,
-fa
użyj AVI jako formatu wyjściowego,
-To
użyj wejścia tunera,
-q 80
ustaw jakość na 80% przechwytywanego obrazu
-d 2
rozmiar zdjęć jest o połowę mniejszy (352x288)
-C
wybierz kanały telewizyjne, a odpowiednie -it i -iT (źródło wideo: tuner telewizyjny) mogą
obecnie używany w Marvel G200/G400 i Matrox Millenium G200/G400 z Rainbow
Rozszerzenie prowadnicy (obsługa BTTV jest w budowie). Aby uzyskać więcej informacji na temat sposobu wykonania
części tunera telewizyjnego tych kart działają, zobacz projekt Marvel/Linux na:
Ostatni przykład:
> Ławrek -f a -i p -g 352x288 -q 80 -s -l 70 -R l --kodowanie oprogramowania test03.avi
Są dwie nowe opcje -g 352x288, który określa rozmiar nagrywanego wideo
za pomocą --kodowanie oprogramowaniaumożliwia to programowe kodowanie zarejestrowanych obrazów. Z
w tej opcji możesz także nagrywać z karty opartej na bttv. Obciążenie procesora jest duże. Ten
opcja działa tylko w przypadku ogólnych kart video4linux (takich jak karty oparte na Brooktree-848/878
karty), nie działa to w przypadku kart opartych na zoranie.
Inne nagranie wskazówki
Wszystkie narzędzia lavtool akceptują opis pliku taki jak plik*.avi, więc nie musisz nadawać nazwy każdemu plikowi
ale jest taka możliwość.
Uwaga: Więcej opcji opisano na stronie podręcznika, ale dzięki temu powinieneś być w stanie je uzyskać
zaczęło się.
Oto kilka wskazówek dotyczących rozsądnych ustawień. Zmień jakość na 80% lub więcej dla -d 2
schwytać. Przy pełnej rozdzielczości już od 40% wydaje się wizualnie „idealnie”. -d 2 już jest
lepsze niż wideo VHS (*dużo*!). W przypadku Marvela nie należy ustawiać jakości wyższej niż
50 w przypadku nagrywania w pełnym rozmiarze (-d 1). Jeśli użyjesz wyższych ustawień (-q 60), będzie więcej
prawdopodobne, że będziesz mieć problemy. Wyższe ustawienia spowodują spadki klatek. Jeśli
jeśli zamierzasz nagrywać płyty VCD, niewiele zyskasz, nagrywając w całości
rozdzielczość, ponieważ i tak musisz później zmniejszyć rozdzielczość do -d 2.
możesz nagrywać w innych rozmiarach niż oczywiste -d 1/2/4. Możesz użyć kombinacji gdzie
używasz rozmiaru o połowę w poziomie i pełnego rozmiaru w pionie: -d 21. Spowoduje to nagranie w systemie NTSC
w rozmiarze 352x480. Pomaga to, jeśli chcesz tworzyć dyski SVCD ze skalowaniem 352 pikseli
do 480 nie jest tak widoczne dla oka, jak w przypadku użycia innej kombinacji -d 12.
Tam, gdzie masz pełną rozdzielczość poziomą i połowę pionową, ta wersja będzie miała
rozmiar 720x288 dla NTSC
Trochę Informacja Parę słów o dotychczasowy typowy Ławrek wydajność jednocześnie nagranie
0.06.14:22 int: 00040 lst:0 ins:0 del:0 ae:0 td1=0.014 td2=0.029
Pierwsza część pokazuje czas nagrywania przez lavrec. wewn: odstęp między dwiema klatkami.
ostatnie: liczba utraconych klatek. ins oraz ten: to liczba wstawianych i usuwanych klatek
do korekcji synchronizacji. ae: ilość błędów audio. td1 oraz td2 to czas audio/wideo-
Różnica.
(wew.) rama interwał powinna wynosić około 33 (NTSC) lub 40 (PAL/SECAM). Jeśli jest bardzo
inaczej, prawdopodobnie otrzymasz złe nagranie i/lub wiele utraconych klatek
(pierwszy) stracił Ramy są złe i oznaczają, że coś nie działa zbyt dobrze w trakcie
nagrywanie (zbyt wolne HD, zbyt duże obciążenie procesora, ...) Spróbuj nagrać z większą decymacją
i ewentualnie gorszą jakość.
(w, del) wstawiony OR usunięte Ramy z nich jest normalnych → synchronizowanych. Jeśli straciłeś wiele AND
wstawione ramki, wymagasz od swojej maszyny zbyt wiele. Użyj mniej wymagających opcji lub
wypróbuj inną kartę dźwiękową.
(ae) audio błędy nigdy nie są dobre. Powinno być 0
(td1, td2) czas różnicazawsze oscyluje wokół 0, chyba że korekcja synchronizacji jest wyłączona
(--synchronizacja!=2, 2 jest wartością domyślną).
Komentarz Parę słów o "przeplatać pole zamówienie - co mogą go Wrongs oraz w jaki sposób do stały To"
Po pierwsze, co to znaczy, że kolejność pól z przeplotem jest błędna?
Łańcuch przetwarzania obrazu mjpegtools jest zorientowany na ramki. Ponieważ jest to materiał wideo
przechwytywana jest każda klatka składająca się z górnego pola (linie 0, 2, 4 itd.) oraz
dolne pole (linie 1., 3., 5. i tak dalej).
Są trzy złe rzeczy, które mogą przytrafić się polom
W rzeczywistości jest to problem tylko w przypadku filmów w formacie PAL, gdzie każda klatka filmu jest wysyłana jako plik wideo
para pól. Można je wysłać najpierw do górnego lub dolnego pola i niestety nie zawsze tak jest
to samo, chociaż zwykle wydaje się, że najpierw jest dół. Jeśli przechwycisz z niewłaściwą kolejnością pól
(zaczynasz przechwytywać każdą klatkę od dołu, a nie od góry i odwrotnie) klatki
filmu zostanie rozdzielona *pomiędzy* klatkami w strumieniu. Odtworzone na telewizorze, gdzie każdy
pole jest wyświetlane samodzielnie. Jest to nieszkodliwe. Kolejność odtwarzanych pól jest następująca
dokładnie taka sama jak kolejność nadawanych pól. Niestety, odtwarzanie na
Monitor komputerowy, na którym pojawiają się jednocześnie oba pola ramki, wygląda *strasznie*, bo
każda klatka skutecznie łączy dwa momenty oddalone od siebie o 1/25 sekundy.
Te dwa pola można po prostu zamienić w jakiś sposób, tak aby góra była traktowana jako dół i dół
traktować jako najlepsze. Rezultatem jest obijanie i „cięcie”. Czasami wydaje się, że dzieje się to z powodu
z powodu usterek sprzętowych karty przechwytującej.
Gdzieś w przechwytywaniu/przetwarzaniu *kolejności* w czasie dwóch pól w każdej ramce
zostać w jakiś sposób błędnie oznakowane. Nie jest to dobre, ponieważ oznacza, że odtwarzanie w końcu się rozpocznie
umieść pole zawierające obraz próbkowany wcześniej w czasie następuje po próbkowanym obrazie
później. Rezultatem są dziwne efekty „drgania”.
Jak rozpoznać, że mam jeden z tych problemów?
To może być trudne do zauważenia. Jeśli podczas odtwarzania widzisz tajemniczo migoczące obrazy, spróbuj
kodowanie fragmentu z wymuszoną odwrotną kolejnością pól (patrz poniżej). Jeśli coś cię poprawi
dowiedz się, na czym polegał problem i jakie jest rozwiązanie!
Te dwa pola można po prostu zamienić w jakiś sposób, tak aby góra była traktowana jako dół i dół
traktować jako najlepsze. Rezultatem jest obijanie i „cięcie”. Czasami wydaje się, że dzieje się to z powodu
z powodu usterek sprzętowych karty przechwytującej. Problem ten wygląda następująco:
Problem z przeplotem
Gdzieś w przechwytywaniu/przetwarzaniu *kolejności* w czasie dwóch pól w każdej ramce
zostać w jakiś sposób błędnie oznakowane. Nie jest to dobre, ponieważ oznacza, że odtwarzanie w końcu się rozpocznie
umieść pole zawierające obraz próbkowany wcześniej w czasie następuje po próbkowanym obrazie
później. Rezultatem są dziwne efekty „drgania”.
Jeśli używasz glav lub lavplay, upewnij się, że używasz również -F/--migotanie opcja. To
wyłącza niektóre rzeczy poprawiające obraz.
Jeśli chcesz obejrzeć film, możesz także skorzystać z yuvplay:
> lav2yuv │ ... │ graj
Jeśli występuje problem z kolejnością pól, powinieneś go zobaczyć w yuvplay.
Jak możesz to naprawić?
Aby to naprawić, należy „przesunąć” pola pomiędzy ramkami. Użyj yuvcorrect -T
BOTT_FORWARD/TOP_FORWARD aby zmienić sposób przydzielania pól do ramek. Możesz dowiedzieć się
bieżącą kolejność pól pliku MJPEG, patrząc na kilka pierwszych linii debugowania
wyjście z: > lav2yuv -v 2 plik_mjpeg > / dev / null Lub powtórz wymianę płyt -f a dla -F
A lub odwrotnie.
To też nie jest takie złe. Użyj narzędzia, które po prostu zamienia górne i dolne pola na sekundę
czas. yuvcorrect może to zrobić, używając -T PRZEŁĄCZNIK LINIOWY.
Można to łatwo naprawić. Albo powiedz gdzieś narzędziu, aby ponownie oznaczyło pola, albo po prostu powiedz
odtwarzacza, aby odtwarzał w zamienionej kolejności (to drugie można zrobić „pośrednio”, mówiąc
mpeg2enc podczas kodowania do rewers dotychczasowy flaga (-z b│t) to mówi dekoderowi, które pole
zamówić do użycia.
In zamówienie do ustalać dokładnie co rodzaj of przeplot problem ty mieć, ty potrzeba do
wyciąg kilka Ramy od dotychczasowy nagrany strumień oraz wziąć a na temat at im:
> mkdir pnm
> lav2yuv -f 40 video.avi │ y4mtoppm │ pnmsplit - pnm/image%d.pnm
> rm pnm/image?.pnm
> cd pon
>XV
Najpierw tworzymy katalog, w którym przechowujemy obrazy. lav2yuv -f 40 zapisuje tylko
pierwsze 40 klatek na standardowe wyjście. Program y4mtoppm konwertuje klatki na obrazy pnm i
pnmsplit dzieli obraz na dwie klatki, a obraz na dwa pojedyncze obrazy. Wtedy my
usuń pierwsze 10 obrazów, ponieważ pnmsplit nie obsługuje numeracji %0xd. Bez
początkowe zero w liczbie, pliki zostaną posortowane w niewłaściwej kolejności, co doprowadzi do
mylące odtwarzanie.
Do przeglądania zdjęć użyj swojego ulubionego programu graficznego (np. xv). Jak każde zdjęcie
zawierają tylko jedno pole z dwóch, będą wyświetlane w skali pionowej. Jeśli spojrzysz na
na zdjęciach, film powinien powoli się rozwijać.
Jeśli masz film, powinieneś zawsze zobaczyć 2 obrazy, które są prawie takie same (ponieważ
klatka filmu jest podzielona na dwa pola do emisji) jedno po drugim. Możesz obserwować
jest to łatwe, jeśli podczas pauzy w filmie masz efekt grzebienia, ponieważ oba pola będą
wyświetlane w tym samym czasie. Dwa obrazy, które do siebie pasują, powinny mieć parzystą wartość
liczbę i następującą po niej liczbę nieparzystą. Więc jeśli spojrzysz na zdjęcia: 4 i 5 są prawie
identyczne, 5 i 6 różnią się (mają ruch), 6 i 7 są identyczne, 7 i 8 różnią się, ....
Aby rozwiązać ten problem, musisz użyć yuvcorrect -T BOTT_FORWARD or TOP_FORWARD, Możesz
również występuje problem polegający na tym, że kolejność pól (góra/dół) jest nadal nieprawidłowa. Być może będziesz musiał
użyj yuvcorrect po raz drugi -M PRZEŁĄCZNIK LINIOWYlub użyj pliku mpeg2enc -z (b│t) opcja.
Aby sprawdzić, czy dobrze zgadłeś, ponownie wyodrębnij ramki i zmień ich kolejność za pomocą
racja:
> lav2yuv -f 40 wideo.avi │ racja -T OPCJA │ r4mtoppm │ pnmsplit - pnm/image%d.pnm
Gdzie „OPCJA” oznacza, co Twoim zdaniem rozwiąże problem. Dotyczy to przetworzonego materiału
z filmu. Poniżej omówiono materiały wyprodukowane bezpośrednio dla telewizji.
Hej, a co z filmami w systemie NTSC?
Filmy nadawane są w systemie NTSC przy użyciu rozwijanego formatu „3:2”, co oznacza, że przechwytywana jest połowa klatek
zawierają pola z 1 klatki filmu i półpola z 2 klatek. Aby cofnąć ten efekt dla
wydajne kodowanie MPEG, musisz użyć yuvkineco.
Jeśli masz źródło z przeplotem, takie jak kamera telewizyjna, ramka składa się z dwóch pól
które są rejestrowane w różnych momentach czasu. Dostrzeżenie problemu tutaj jest trudniejsze. Ty
trzeba znaleźć coś poruszającego się poziomo od lewej do prawej. Kiedy wyodrębnisz
pola, rzecz powinna poruszać się małymi krokami od lewej do prawej, a nie jednym dużym
krok do przodu, mały krok do tyłu, duży krok do przodu, mały do tyłu... Musisz użyć tego samego
wymienione opcje, aby rozwiązać problem.
Nie oczekuj, że kolejność pól będzie zawsze taka sama (najpierw od góry lub od dołu). Może się to zmienić
pomiędzy kanałami, pomiędzy filmami, a nawet może się to zmieniać w obrębie filmu. Jeśli to
zmienia się na stałe, być może będziesz musiał zakodować za pomocą mpeg2enc -I 1 lub nawet -I 2.
Możesz mieć takie problemy tylko wtedy, gdy nagrywasz w pełnym rozmiarze !!!
Tworzenie filmów z innych źródeł
Oto kilka wskazówek i opisów tworzenia filmów z innych źródeł, np
obrazy i inne typy wideo.
Być może zainteresuje Cię także obejrzenie Transkodowanie of Przede wszystkim system został opracowany MPEG-2
Tworzenie filmy od zdjęcia
Możesz użyć jpeg2yuv, aby utworzyć strumień yuv z oddzielnych obrazów JPEG. Ten strumień został wysłany
na standardowe wyjście, dzięki czemu można go zapisać w pliku zakodowanym bezpośrednio w formacie wideo MPEG
używając mpeg2enc lub do czegokolwiek innego.
Zapisywanie strumienia yuv można wykonać w następujący sposób:
> jpeg2yuv -f 25 -I p -j obraz%05d.jpg > wynik.juv
Tworzy plikresult.yuv zawierający dane wideo yuv z szybkością 25 FPS. Opcja -f jest
używany do ustawiania liczby klatek na sekundę. Zauważ, że image%05d.jpg oznacza, że pliki JPEG mają nazwy
image00000.jpg, image00001.jpg i tak dalej. (05 oznacza pięć cyfr, 04 oznacza cztery cyfry,
itd.) Opcja -I p jest potrzebna do określenia przeplotu. Musisz sprawdzić, jakim typem jesteś
Posiadać. Jeśli nie masz przeplotu, po prostu wybierz p dla progresywnego
Jeśli chcesz zakodować wideo w formacie MPEG bezpośrednio z obrazów JPEG bez zapisywania osobnego pliku
typ pliku wideo:
> jpeg2yuv -f 25 -I p -j obraz%05d.jpg │ mpeg2enc -o plik mpeg.m1v
Robi to samo, co powyżej, ale zapisuje wideo w formacie MPEG, a nie wideo w formacie YUV. Zobacz mpeg2enc
w sekcji szczegółowe informacje na temat korzystania z formatu mpeg2enc.
Możesz także użyć yuvscalera pomiędzy jpeg2yuv i mpeg2enc. Jeśli chcesz utworzyć plik SVCD
z obrazów źródłowych:
> jpeg2yuv -f 25 -I p -j obraz%05d.jpg │ yuvscaler -O CDLS │ mpeg2enc -f 4 -o wideo.m2v
Możesz użyć opcji -b, aby ustawić numer obrazu na początek. Liczba
obrazy do przetworzenia można określić za pomocą liczby -n. Na przykład, jeśli jesteś pierwszy
obraz ma postać image01.jpg, a nie image00.jpg, a chcesz przetworzyć tylko 60 obrazów
rodzaj:
>jpeg2yuv -b 1 -f 25 -I p -n 60 -j obraz*.jpg │ juv2lav -o strumień_bez_dźwięku.avi
Następnie dodaję dźwięk do strumienia:
> lawaddwav strumień_bez_dźwięku.avi dźwięk.wav strumień_z_dźwiękiem.avi
Do wprowadzania danych w ppm służy narzędzie ppmtoy4m. Istnieje strona podręcznika dla ppmtoy4m, która powinna być
skonsultowano się w celu uzyskania dodatkowych informacji.
Aby utworzyć wideo w formacie MPEG, spróbuj tego:
>kot *.ppm │ ppmtoy4m -o 75 -n 60 -F 25:1 │ mpeg2enc -o wyjście.m1v
cat każdy plik *.ppm do ppmtoy4m. Tam pierwsze 75 klatek (zdjęć) jest ignorowanych, a następnie kolejnych
60 jest kodowanych przez mpeg2enc do pliku wyjściowego.m1v. Można go uruchomić bez opcji -o i -n. The
-F opcje ustawiają liczbę klatek na sekundę, domyślnie jest to NTSC (30000:1001), w przypadku PAL musisz użyć -F
25: 1.
Można również używać innych formatów obrazu, jeśli dostępny jest konwerter na ppm.
>ls *.tga │ xargs -n1 tgatoppm │ ppmtoy4m │ graj
Lista nazw plików (ls *.tga) jest przekazywana xargs, który wykonuje tgatoppm z jednym (-n
1) argument na wywołanie i podaje dane wyjściowe do ppmtoy4m. Tym razem tylko wideo
pokazane na ekranie. Parametr xargs jest potrzebny tylko wtedy, gdy konwerter (tgatoppm) może działać tylko
na jednym obrazie na raz.
Jeśli chcesz użyć narzędzia „konwertującego” ImageMagick (szwajcarski scyzoryk), spróbuj:
>konwertować *.gif ppm:- │ ppmtoy4m │ graj
Oznacza to, że pobierz wszystkie obrazy „.jpg” z katalogu, przekonwertuj je do formatu PPM, potokuj na standardowe wyjście,
następnie do ppmtoy4m w celu konwersji na y4m ....
Rozszyfrowanie Strumienie w MPlayer
Dekodowanie strumieni za pomocą mplayera to dobry sposób na udostępnienie każdego filmu, jaki potrafi mplayer
odtwórz coś, co możesz edytować lub zakodować do formatu MPEG za pomocą mjpegtools. Ta metoda ma
został przetestowany z mplayerem 1.0rc2 i powinien działać z nowszymi wersjami
>mkfifo strumień.yuv
>kot strumień.yuv │ juv2lav -o mjpeg_wo.avi &
> odtwarzacz -brak dźwięku -noframedrop -vo yuv4mpeg dowolnyplik.mpg
> odtwarzacz -vo zero -do pcm:plik=dowolnyplik.wav dowolnyplik.mpg
Teraz masz przykład pliku AVI zakodowanego w formacie mjpeg bez dźwięku. Dźwięk będzie obecny
dowolny plik.wav. Możesz wybrać, czy chcesz dodać dźwięk do pliku AVI lawaddwav oraz
edytować plik przed kodowaniem.
Możesz także użyć zamiast yuv2lav, mpeg2enc lub dowolnego innego narzędzia z narzędzi mjpeg, więc
Twoje polecenie może również wyglądać tak:
> jak strumień.yuv │ juvdenoise │ yuvscaler -O CDLS │ mpeg2enc -f 4 -o wideo_svcd.m2v
cat plik wav do mp2 enc zakodować go do formatu audio MP2. The -vo yuv4mpeg opcja działa dobrze
z innymi typami wejść wymienionymi w dokumentacji mplayera.
Rozszyfrowanie MPEG-2 Strumienie w mpeg2dec
Możesz dekodować strumienie MPEG2 za pomocą poprawionej wersji MPEG2dec, która tworzy strumienie yuv.
Możesz to potokować do dowolnego innego programu mjpegtools. Lub używasz wersji mpeg2dec
bezpośrednio z projektu libmpeg2 i użyj trybu wyjściowego pgmpipe. Z pgmtoy4m
program, możesz przekonwertować to wyjście pgm z powrotem na yuv.
Jeśli zadajesz sobie pytanie, dlaczego istnieje poprawiona wersja i pgmtoy4m. Odpowiedź jest taka, że
łatka dla wyjścia yuv była wysyłana kilka razy do programistów libmpeg2, ale nigdy nie została wysłana
dołączony. Teraz mamy dwa sposoby obejścia tego problemu. Dekodowanie wygląda następująco:
> mpeg2dec -s -o pgmpipe ANYTS.VOB │ pgmtoy4m -i t -a 10:11 -r 30000:1001 │ mpeg2enc -f 8
nowewideo.m2v
Możesz dekodować dźwięk w sposób opisany w Transkodowanie of Przede wszystkim system został opracowany MPEG-2 Sekcja.
Inne rzeczy do wiedzieć
Jeśli masz strumienie transportowe ze swojej karty DVB lub odbiornika satelitarnego, możesz chcieć
demultipleksować lub wycinać. Jest do tego niezłe narzędzie Projekt X dostępne od:
Możesz później przetwarzać strumienie, tak jak w przypadku dowolnego filmu MPEG lub
demultipleksowanego audio-wideo. Więc Transkodowanie of Przede wszystkim system został opracowany MPEG-2 część tego dokumentu
będzie interesujące. Sprawdzam, czy nagranie się powiodło
Możesz użyć lavplay lub glav. WAŻNE: NIGDY spróbuj uruchomić xawtv i lavplay lub glav
odtwarzania sprzętowego, nie będzie działać. Przy odtwarzaniu programowym wszystko działa prawidłowo.
>lavplay -p S nagranie.avi
Powinieneś zobaczyć nagrany obraz i usłyszeć dźwięk. Ale dekodowanie wideo jest
wykonywane przez procesor, co spowoduje duże obciążenie systemu. Zaleta tej metody
czy nie potrzebujesz xawtv.
Lepszy sposób:
>lavplay -p H nagranie.avi
Wideo jest dekodowane i odtwarzane przez sprzęt. Obciążenie systemu jest bardzo niskie. To będzie
odtwórz go na ekranie, używając sprzętu, a nie dekodowania programowego.
Możesz także spróbować:
> lawa -p C nagranie.avi
Który odtworzy go przy użyciu sprzętu, ale do wyjścia wideo karty.
> glaw nagranie.avi
Działa tak samo jak lavplay, ale masz ładny GUI. Dostępne są opcje glav i lavplay
prawie tak samo. Nie używając żadnej opcji, używane jest odtwarzanie SW.
Używając odtwarzania sprzętowego, generowany jest sygnał dla wyjścia Composite i SVHS OUT, dzięki czemu jest to możliwe
obejrzyj film na swoim telewizorze.
> lav2yuv test.eli │ graj
Jest to inny sposób na uzyskanie wideo bez dźwięku. Możesz użyć yuvplay raz w kodowaniu
Komenda. Kiedy użyjesz yuvplay w poleceniu kodowania, zobaczysz zmiany wprowadzone przez filtry
i skalowanie. Można go również używać do debugowania w zwolnionym tempie.
UWAGA: Po załadowaniu sterownika musisz uruchomić xawtv, aby skonfigurować pewne rzeczy, lavplay i
glav nie, ale są potrzebne do odtwarzania HW. Nie zapomnij zamknąć xawtv!!
NOTE2: Nie próbuj wysyłać glava i lavplaya do tła, to nie będzie działać poprawnie!!!
NOTE3: Odtwarzanie SECAM jest teraz (12.3.2001) tylko w trybie monochromatycznym, ale dotyczy nagrywania i kodowania
jest zrobione dobrze.
NOTE4:Złe kable mogą obniżyć jakość obrazu. Zwykle tego nie widać, ale kiedy
znajduje się tekst, na którym możesz zauważyć mały cień. Kiedy to zobaczysz, powinieneś zmienić
kabel.
Przyjście wkrótce: Istnieje narzędzie, które bardzo ułatwia przekodowywanie filmów: Linux Studio. Ty
można go pobrać pod adresem:
Edytuj wideo
Edytuj w glaw
Większość zadań można łatwo wykonać za pomocą glav. Podobnie jak usuwanie części wideo, wycinanie i wklejanie
skopiuj fragmenty filmów.
opis przycisku glav
Modyfikacje należy zapisać, ponieważ glav nie edytuje filmu w sposób destrukcyjny. Ten
oznacza, że oryginalny film pozostaje niezmieniony, a modyfikacje są przechowywane w dodatku
Plik „Edytuj listę” czytelny w edytorze tekstu. Pliki te mogą służyć jako dane wejściowe do pliku
inne programy lavtools, takie jak lav2wav, lav2yuv, lavtrans.
Jeśli chcesz odciąć początek i koniec strumienia, zaznacz początek i koniec
oraz i użyj przycisku „zapisz wybór”. Plik listy edycji jest następnie używany jako dane wejściowe dla
narzędzia toaletowe. Jeśli chcesz podzielić nagrane wideo na mniejsze części, po prostu wybierz opcję
części, a następnie zapisz każdą część w innym pliku listy.
Możesz zobaczyć wszystkie zmiany w obrazie i dźwięku TERAZ i nie musisz ponownie obliczać
byle co.
Jeśli chcesz uzyskać „niszczącą” wersję edytowanego filmu, użyj:
> lawtrans -o krótka_wersja.avi -f a editlist.eli
-o
określa nazwę wyjściową
-fa
określa format wyjściowy (na przykład AVI)
editlist.eli
to plik listy, w którym opisano modyfikacje. Generujesz plik listy za pomocą
przyciski „zapisz wszystko” lub „zapisz wybrane” w glav.
Unify filmy
> lawtrans -o strumień.qt -f q rekord_1.avi rekord_2.avi ... rekord_n.avi
-o
określa nazwę pliku wyjściowego
-fq
określa format wyjściowy, w tym przypadku QuickTime
Zwykle nie jest to potrzebne. Pamiętaj, że w wersji 2-bitowej obowiązuje limit rozmiaru pliku wynoszący 32 GB
systemy ze starszą wersją glibc. Zwykle nie stanowi to problemu w dzisiejszych czasach
Oddzielny dźwięk
> lawtrans -o dźwięk.wav -f w strumień.avi
Tworzy plik wav z dźwiękiem strumienia.avi. Może być potrzebny, jeśli chcesz usunąć
noise lub jeśli chcesz przekonwertować go na inny format dźwięku.
Innym sposobem podziału dźwięku jest:
> law2wav editlist.eli >dźwięk.wav
Oddzielny zdjęcia
>mkdir jpg; lawtrans -o jpg/image%05d.jpg -f i strumień.avi
Najpierw utwórz katalog „jpg”. Następnie lavtrans utworzy pojedyncze obrazy JPG w formacie jpg
katalog z pliku stream.avi. Pliki będą miały nazwy: image00000.jpg,
obraz00001.jpg ....
Utworzone obrazy jpg zawierają cały obraz. Ale jeśli nagrałeś w pełnym rozmiarze
obrazy są zapisywane z przeplotem. Zwykle przeglądarki zdjęć pokazują tylko pierwsze pole
plik jpg.
Jeśli chcesz mieć obraz w jednym pliku, możesz użyć tej wersji
> lav2yuv -f 1 strumień.avi │ r4mtoppm -L >plik.pnm
Jeśli chcesz podzielić pola na pojedyncze pliki, użyj tego:
> lav2yuv -f 5 ../stream.avi │ r4mtoppm │ pnmsplit - obraz%d.pnm
Może interesujące, jeśli potrzebujesz przykładowych obrazów i nie chcesz się bawić z chwytaniem pliku
pojedynczy obraz.
Tworzenie film przejścia
Dzięki lavpipe Philippa Zabela możemy teraz wykonywać proste przejścia między filmami lub
łączyć wiele warstw filmów.
Philipp napisał HOWTO na temat dokonywania przejść:
Załóżmy, że jest to prosta scena: mamy dwa wejściowe filmy intro.avi i epilogue.mov oraz
chcesz, aby intro.avi stało się przejściem do epilogue.mov o czasie trwania jednej sekundy (tzn
25 klatek dla PAL lub 30 klatek dla NTSC).
Intro.avi i epiloque.mov muszą mieć ten sam format (tę samą liczbę klatek na sekundę i tę samą liczbę klatek na sekundę).
rezolucja). W tym przykładzie są to oba pliki PAL o wymiarach 352x288. intro.avi zawiera 250
klatek i epilogue.mov ma długość 1000 klatek.
Dlatego nasz plik wyjściowy będzie zawierał:
pierwsze 225 klatek intro.avi
przejście składające się z 25 klatek, zawierające ostatnie 25 klatek intro.avi i pierwsze 25 klatek
z epilog.mov
ostatnie 975 klatek epilogue.mov
Możemy pobrać ostatnie 25 klatek intro.avi, wywołując:
>lav2yuv -o 225 -f 25 intro.avi
-o 255, przesunięcie, każe lav2yuvowi rozpocząć od klatki nr 225 i
-f 25 powoduje, że od tego momentu wysyła 25 klatek.
Inna możliwość (ponieważ ujemne przesunięcia liczone są od końca) to:
> lav2yuv -o -25 intro.avi
I pierwsze 25 klatek epilogue.mov:
> lav2yuv -f 25 epilog.mov
-o domyślnie offset wynosi zero
Ale musimy połączyć dwa strumienie za pomocą lavpipe. Zatem wywołanie będzie brzmieć:
> fajka ”law2yuv -o 255 -f 25 intro.avi” ”law2yuv -f 25 epilog.mov”
Wynikiem tego jest surowy strumień yuv, który można wprowadzić do pliku transist.flt.
tranist.flt musi zostać poinformowany o czasie trwania przejścia i nieprzezroczystości
drugi strumień na początku i na końcu przejścia:
-o liczba
nieprzezroczystość drugiego wejścia na początku [0-255]
-O nr
nieprzezroczystość drugiego wejścia na końcu [0-255]
-d liczba
czas trwania przejścia w klatkach
Nieprzezroczystość równa 0 oznacza, że drugi strumień jest w pełni przezroczysty (tylko strumień pierwszy
widoczny), przy 255 strumień drugi jest całkowicie nieprzezroczysty.
W naszym przypadku prawidłowe wywołanie (przejście ze strumienia 1 do strumienia 2) wyglądałoby następująco:
> tranzyt.flt -o 0 -O 255 -d 25
Parametry -s i -n odpowiadają parametrom -o i -f lav2yuv i są potrzebne tylko
jeśli ktoś chce z jakiegokolwiek powodu wyrenderować tylko część przejścia. Proszę
zauważ, że ma to wpływ tylko na obliczenia ważenia - tak naprawdę żadne dane wejściowe nie są
pominięte. Jeśli używasz parametru pomijania (na przykład -s 30), musisz także pominąć
pierwsze 30 klatek w lav2yuv (-o 30), aby uzyskać oczekiwany wynik. Jeśli tego nie zrobiłeś
zrozum to, wyślij e-mail do autorów lub po prostu zignoruj -s i -n. Całość
procedura zostanie ostatecznie zautomatyzowana.
Teraz chcemy skompresować strumień yuv za pomocą yuv2lav:
> juv2lav -f a -q 80 -o przejście.avi
Odczytuje strumień yuv ze standardowego wejścia i wysyła plik avi (-fa) ze skompresowanymi ramkami JPEG
jakości 80.
Teraz mamy całe polecenie tworzenia przejścia:
> tak ”law2yuv -o 255 -f 25 intro.avi” ”law2yuv -f 25 epilog.mov” │ tranzyt.flt -o 0
-O 255 -d 25 │ juv2lav -f a -q 80 -o przejście.avi
Powstały film można zapisać jako listę edycji LAV (zwykły plik tekstowy) zawierającą
następujące linie:
Lista edycji LAV
PAL
3
intro.avi
przejście.avi
epilog.mov
0 0 224
1 0 24
2 25 999
Ten plik można wprowadzić do glav lub lavplay, albo można go potokować do mpeg2enc za pomocą lav2yuv
lub połącz całość w jeden plik mjpeg za pomocą lavtrans lub lav2yuv│yuv2lav.
Konwersja strumienia na filmy MPEG lub DIVx
Najpierw jest ogólny opis procesu kodowania, a potem następuje
szczegółowy opis niektórych powszechnie używanych formatów wyjściowych.
Jeśli chcesz, aby konwersacja wideo w formacie MPEG odbywała się jednym poleceniem, wypróbuj skrypty lav2mpeg
katalog
Kodowanie za pomocą skryptu lav2mpeg wygląda następująco dla wyjścia mpeg1:
>lav2mpeg -a 160 -b 2110 -d 320x240 -m mpeg1 -o wyjście.mpg plik.eli
Utworzy plik mpeg1 z szybkością transmisji wideo 2110 kBit/s i szybkością transmisji audio 160 kBit/s
w rozdzielczości 320x240
Lub do generowania wyjścia MPEG2:
lav2mpeg -o mpeg2 -O wyjście.mpg plik.eli
Utworzy plik mpeg2 z domyślną szybkością transmisji w tej samej rozdzielczości, co rozdzielczość wejściowa
Lepsze wyniki można jednak osiągnąć, wypróbowując różne opcje i sprawdzając, które
te działają najlepiej dla Ciebie. Omówiono je poniżej.
Tworzenie filmów MPEG-1 wyjaśniono na większej liczbie przykładów i bardziej szczegółowo
ponieważ większość rzeczy, które można wykorzystać w formacie MPEG-1, działa również dla drugiego wyjścia
Formaty
Do tworzenia sekwencji statycznych VCD/SVCD (-f 6 / -f 7 w mpeg2enc) powinieneś zobaczyć:
Do tworzenia menu w formacie VCD/SVCD potrzebne są nieruchome sekwencje. Tworzenie menu jest
opisane w dokumencie vcdimager.
Tworzenie dźwięk
Filmy MPEG-1 wymagają plików dźwiękowych MPEG-1-Layer2 (MP2). W przypadku filmów MPEG-2 można użyć
MPEG-1-Layer2 i MPEG1-Layer3 (MP3). Dźwięk MP3 nie jest oficjalnie ważnym formatem audio, ale
rozpozna go wiele odtwarzaczy VCD. Dźwięk MP3 nie jest dostępny w przypadku płyt DVD. Powinieneś się trzymać
do MP2, ponieważ wiele odtwarzaczy MPEG-2 (na przykład odtwarzacz DVD, zwykle Windows
Wersje też mają z tym duże problemy) nie są w stanie odtwarzać MPEG2-Video i MP3
dźwiękowy.
mp2enc to koder MP2 Audio. Koder Toolame może również wygenerować plik MP2.
Toolame jest znacznie szybsze niż mp2enc, ale Toolame nie wykonuje ponownego próbkowania (48000 do 44100
próbek/sekundę). Wiele odtwarzaczy sprzętowych odtwarza płyty SVCD przy użyciu dźwięku o szybkości 48000. Dla MP3
stworzenie Jestem pewien, że masz koder.
Przykład:
> law2wav strumień.avi │ mp2 enc -o dźwięk.mp2
Spowoduje to utworzenie pliku dźwiękowego MPEG ze strumienia.avi z szybkością transmisji 224 kBit/s i próbką
częstotliwość 48 kHz. Jeśli plik audio ma częstotliwość 44.1 kHz, mp2enc ponownie próbkuje dźwięk, aby utworzyć częstotliwość 48 kHz
wyjście. Jeśli chcesz mieć częstotliwość próbkowania na wyjściu 44.1 kHz, musisz dodać -r 44100 do pliku mp2enc
komenda
Przykład
> jak dźwięk.wav │ mp2 enc -v 2 -V -o dźwięk.mp2
Tworzy to wyjście kompatybilne z VCD (-V bitrate=224, stereo, częstotliwość próbkowania: 44100) z
plik wav.
Z -v 2 mp2enc jest bardziej szczegółowe, podczas kodowania widzisz liczbę sekund dźwięku
już zakodowane.
Możesz przetestować dane wyjściowe za pomocą:
> odtwórz mpeg dźwięk.mp2
UWAGA: plaympeg to odtwarzacz MPEG-1 dla systemu Linux, możesz używać także innych odtwarzaczy. Dla dźwięku
testując, możesz także użyć mpg123. Zarówno do odtwarzania audio, jak i wideo istnieją uniwersalne rozwiązania
odtwarzacz, taki jak VLC mplayer i inne.
Konwersja wideo
Tworzenie filmów MPEG-1 i MPEG-2.
Zwykle pierwszy utworzony film nie jest najlepszy. Aby uzyskać optymalną jakość/rozmiar, musisz to zrobić
baw się szybkością transmisji, promieniem wyszukiwania, filtrem szumów.... Opcje mpeg2enc to
opisane na stronie podręcznika mpeg2enc.
Przykład:
lav2yuv strumień.avi strumień1.avi │ mpeg2enc -o wideo.m1v
Spowoduje to utworzenie pliku wideo z domyślną stałą szybkością transmisji wynoszącą 1152 kBit/s. To jest
bitrate, którego potrzebujesz, jeśli chcesz tworzyć płyty VCD. Możesz określić więcej plików, a także użyć
symbol zastępczy %nd. Gdzie n opisuje liczbę. Domyślnie mpeg2enc zakłada, że chcesz
aby zakodować wideo bez przeplotu do formatu Mpeg-1. Jeśli chcesz zakodować wideo w pełnym rozmiarze za pomocą
przeplatanie powyższego polecenia zakończy się niepowodzeniem.
Przykład:
> lav2yuv strumień%02d.avi │ mpeg2enc -b 1500 -r 16 -o wideo.m1v
mpeg2enc tworzy wideo z szybkością transmisji 1500 kBit/s, używając promienia wyszukiwania 16. To
oznacza to, że przy próbie znalezienia podobnych makrobloków 16*16 pikseli pomiędzy klatkami kodera
wyszukuje do 16 pikseli od aktualnej pozycji każdego bloku. Wygląda na dwa razy dalej
podczas porównywania klatek oddalonych od siebie o 1 klatkę i tak dalej. Rozsądne wartości to 16 lub 24. Wartość domyślna
wynosi 16, więc dodanie tej opcji tutaj jest bezużyteczne. Niższe wartości (0, 8) poprawiają kodowanie
prędkość, ale otrzymujesz niższą jakość (bardziej widoczne artefakty) przy wyższych wartościach (24, 32)
poprawić jakość kosztem szybkości. Z opisem pliku stream%02d.avi
przetwarzane są wszystkie pliki pasujące do tego wzorca z numerami 00, 01....
Skalowanie
Za pomocą yuvscalera można teraz skalować wideo przed jego zakodowaniem. To może być przydatne
dla użytkowników z kartami DC10 lub DC10+, które przechwytują przy -d 1 768x576 lub -d 2 384x288
(PAL/SECAM) lub -d 1 640x480 (NTSC).
Pełny opis wszystkich poleceń otrzymasz czytając stronę podręcznika lub uruchamiając:
> yuvscaler -h
Przykład:
> lav2yuv strumień.avi │ yuvscaler -O VCD │ mpeg2enc -o wideo.m1v
Spowoduje to przeskalowanie strumienia do rozmiaru VCD, który dla PAL/SECAM wynosi 352x288, a dla NTSC
352x240. Skalowany strumień yuv jest kodowany w formacie MPEG-1.
Może także skalować SVCD do 480x480 (NTSC) lub 480x576 (PAL/SECAM):
> lav2yuv strumień.avi │ yuvscaler -O CDLS -M BICUBIC │ mpeg2enc -o wideo.m1v
Słowo kluczowe mode (-M) zmusza yuvscaler do użycia algorytmów dwusześciennych wyższej jakości
skalowanie w dół, a nie domyślne algorytmy ponownego próbkowania. Skalowanie odbywa się zawsze przy użyciu opcji
algorytm dwusześcienny.
Przykład:
> lav2yuv strumień.avi │ yuvscaler -I UŻYJ_450x340+20+30 -O ROZMIAR_320x200 │ mpeg2enc -o
wideo.m1v
Tutaj używamy tylko części wejścia i określamy niestandardową rozdzielczość wyjściową.
UWAGA: yuvscaler może ustawić aktywny obszar i ustawić wszystko inne na czarno za pomocą: -I
ACTIVE_WidthxHeight+WidthOffset+HeightOffset Skalowanie wysokiej jakości: y4mscaler
Y4mscaler istnieje już od dłuższego czasu. Ale przez dłuższy czas był to dodatek
narzędzie potrzebne do kompilacji. Istnieje obszerna strona podręcznika wyjaśniająca wszystkie szczegóły,
na stronie internetowej znajduje się również wiele przydatnych informacji:
Unikalną cechą jest możliwość zmiany podpróbkowania i trybów Choma. A ty
może wybrać jądra skalera, w zależności od źródła, które może bardzo pomóc.
Przykład:
> jak raw.yuv │ y4mskaler -O wnioskować=KLIP -O ustawienie wstępne=DVD -O sar=PAL_Wide │ mpeg2enc wideo.m1v
W tym przykładzie y4mscaler pobierze strumień wejściowy i przeskaluje go do odpowiedniego systemu PAL
rozmiar. Opcja sar tell toscale ma szeroki format (16:9). The wniosek = klip opcja będzie
informuje y4mscaler, że może odciąć górny i dolny pasek, aby przeskalować go do wyniku
rozmiar.
Przykład:
> mpeg2dec -o pgmpipe deluxe.m2v │ pgmtoy4m -x 420 JPEG -r 25:1 -i t │ y4mskaler -I
sar=64:36 -I aktywny=344x476+100+48 -O ustawienie wstępne=DVD │ mpeg2enc -f 8 wideo.m1v
To raczej zadanie dla y4mscalera. Mamy dziwny format źródłowy PAL MPEG o rozdzielczości 544x576
pikseli w panoramicznym formacie 16:9, w wyniku czego wokół oryginalnego formatu 4:3 powstają czarne pasy
obraz. To polecenie skaluje obraz do oryginalnego rozmiaru 4:3 i pobiera tylko
ciekawe centrum. SAR to współczynnik proporcji próbki, który gdzieś się gubi, więc określamy
to na początku. Zatem jest to określone ponownie, a następnie podajesz y4mscallerowi aktywny rozmiar
obrazu, którego użyje do powiększenia. Aktywne słowo kluczowe jest traktowane inaczej
y4mscaler i yuvscaler. Płyta DVD jest wstępnie ustawiona dla żądanego formatu wyjściowego. Z
parametry strumienia y4mscaler wie, że jest to strumień PAL i parametry wyjściowe. Jeśli
chciałbyś mieć wyjście 16:9, musiałbyś użyć słowa kluczowego: DVD_WIDE.
Testowanie odbywa się poprzez:
> MPlayer wideo.m1v
UWAGA:To tylko przykłady. Jest więcej opcji, z których możesz skorzystać. Większość z nich możesz wykorzystać
razem, aby tworzyć wysokiej jakości filmy przy najniższej możliwej przepływności.
NOTE2:Im wyższy promień wyszukiwania, tym dłużej zajmie konwersja. Ogólnie
im więcej użytych opcji, tym dłużej trwa kodowanie.
NOTE3:MPEG-1 nie został zaprojektowany jako VBR (strumień o zmiennej przepływności)!! Więc jeśli kodujesz
z -q 15 mpeg2enc ustawia maksymalną przepływność -b na 1152. Jeśli chcesz VBR MPEG-1, masz
ustawić -b bardzo wysoko (2500).
NOTE4:Może powinieneś podać lepsze nazwy niż video.mpg. Dobrym pomysłem jest skorzystanie z opcji
jako część nazwy pliku (na przykład: video_b1500_r16_41_21.m1v). Inną możliwością jest
aby nazwać wszystkie pliki audio warstwy 2 „.mp2”, wszystkie pliki wideo MPEG-1 „.m1v” i wszystkie
Pliki wideo MPEG-2 .m2v” Łatwo wtedy zobaczyć, co się dzieje. Zarezerwuj plik .mpg dla multipleksu
Strumienie MPEG-1/2.
Putting dotychczasowy Strumienie razem
Przykład:
> multipleks dźwięk.mp2 wideo.m1v -o moje_wideo.m1v
Łączy strumień sound.mp2 i video.m1v w my_video.mpg
Teraz możesz użyć ulubionego odtwarzacza MPEG i oglądać go. Wszyscy gracze (na przykład gtv)
oparte na bibliotece SMPEG dobrze sprawdzają się w przypadku MPEG-1. Inne odtwarzacze (które mogą odtwarzać MPEG-2 jako
a także filmy MPEG-1) to: xmovie, xine i MPlayer VLC, żeby wymienić tylko niektóre.
UWAGA: Jeśli określiłeś -S opcja dla mpeg2enc mplex automatycznie podzieli plik
pliki, jeśli w nazwie pliku wyjściowego znajduje się a %d (wygląda jak: -o test%d.mpg) Pliki
generowane w ten sposób są oddzielnymi, niezależnymi strumieniami MPEG!
NOTE2: xine może mieć problem z przeszukiwaniem plików wideo. MPlayer ma problem z
„wyszukiwanie do tyłu/do przodu” ze strumieniami o zmiennej przepływności, ponieważ przesuwa się do przodu w formacie
zapisz ilość danych dla strumienia o stałej szybkości transmisji bitów. Kwota ta może być znacząca
dłużej niż 10 sekund lub jedną minutę (to jest ilość, której mplayer szuka po każdym naciśnięciu
klawisze strzałek). Nie zastanawiaj się więc, czy szuka znacznie więcej czasu do przodu, czy do tyłu niż Ty
oczekiwać.
Zmienna przepływność multipleksowanie: Pamiętaj, aby poinformować mplex, że kodujesz VBR (opcja -V) jako
a także mpeg2enc (zobacz przykładowe skrypty). *Może* automatycznie wykryć, ale to nie działa
już. Powinieneś powiedzieć mplexowi rozmiar bufora wideo co najmniej tak duży, jak ten, który podałeś
do „mpeg2enc” Rozsądnymi liczbami dla MPEG-1 może być maksymalna przepływność wynosząca 2800 Kb/s,
pułap jakości (minimalny poziom kwantyzacji) wynoszący 6 i rozmiar bufora wynoszący 400 KB.
Przykład:
> multipleks -V -r 1740 audio.mp2 wideo_vbr.m1v -o vbr_stream.mpg
Tutaj multipleksujemy strumień o zmiennej przepływności. mplex jest multiplekserem jednoprzebiegowym, więc tak
nie możemy wykryć maksymalnej szybkości transmisji bitów i musimy ją określić. Szybkość transmisji danych dla wyjścia
strumień to: szybkość transmisji audio + szczytowa szybkość transmisji wideo + 1-2% dla informacji multipleksowanych. Jeśli dźwięk (-b
224) ma 224 kBit, a wideo ma 1500 kBit (zakodowane za pomocą -b 1500 -q 9), wtedy mamy 1724 *
1.01 lub około 1740 kBit.
Przykład:
> odtwórz mpeg moje_wideo.mpg
or
> MPlayer moje_wideo.mpg
Tworzenie MPEG-1 Filmy
W przypadku filmów MPEG-1 można używać dźwięku MP2 i wideo MPEG-1. Podzbiór filmów MPEG-1 to
VCD. Możesz użyć VBR (Variable BitRate) dla wideo (chociaż płyty VCD są prawie zawsze
użyj wideo CBR), ale dźwięk musi być CBR (stała szybkość transmisji).
MPEG-1 jest zalecany dla obrazów o rozmiarach do 352x288 dla PAL i 352x240 dla NTSC dla
większe rozmiary MPEG-2 jest lepszym wyborem. Nie ma dokładnej rozdzielczości, gdzie znajduje się MPEG-1
lepszy niż MPEG-2. Gwoli ścisłości, MPEG-1 nie obsługuje źródeł z przeplotem. Jeśli ty
wideo jest z przeplotem, do prawidłowego zakodowania potrzebny jest format MPEG-2.
Przykład tworzenia dźwięku MPEG-1
> law2wav editlist.eli │ mp2 enc -r 44100 -o dźwięk.mp2
Możesz zaoszczędzić trochę bitów, mówiąc mp2enc, aby używał niższej przepływności (opcja -b), na przykład 160 lub
192 kBitów/s. Opcja -r 44100 zmusza mp2enc do wygenerowania pliku audio 44.1 kHz.
> law2wav editlist.eli │ mp2 enc -b 128 -m -o dźwięk.mp2
Tworzy to wyjście monofoniczne z przepływnością 128 kBit/s. Tym razem wejście jest
plik editlist (może mieć dowolną nazwę) utworzony za pomocą glav, więc wszystkie zmiany dokonane w glav są
bezpośrednio przetworzone i przekazane do mp2enc. NIE musisz tworzyć edytowanego strumienia
z lavtrans, aby go poprawnie przekonwertować.
Przykład tworzenia wideo MPEG-1
> lav2yuv editlist.eli │ mpeg2enc -b 2000 -r 24 -q 6 -o wideo.m1v
mpeg2enc tworzy wideo z szybkością transmisji 2000 kBit/s (lub 2048000 Bit/s), ale flaga -q
aktywuje zmienną przepływność i współczynnik jakości 6. Wykorzystuje promień wyszukiwania 24.
Wyjaśnienie:gdy mpeg2enc zostanie wywołany bez flagi „q”, tworzy „stała szybkość transmisji”
Strumienie MPEG. Gdzie (w skrócie) siła kompresji (a tym samym image
jakość) jest dostosowywana w celu zapewnienia, że średnio każda klatka wideo ma dokładnie taką samą jakość
określoną liczbę bitów. Takie strumienie o stałej przepływności są potrzebne do nadawania i
dla taniego sprzętu, takiego jak odtwarzacze DVD i VCD, które korzystają z wolnego sprzętu o stałej prędkości.
Oczywiście jest to dość nieefektywne, ponieważ oznacza, że nieaktywne sceny zużywają bity, które mogłyby
lepiej „wydawać” na szybko zmieniające się sceny. Ustawienie flagi „q” nakazuje mpeg2enc
generować strumienie o zmiennej przepływności. W przypadku takich strumieni określona przepływność to po prostu
maksymalnie dopuszczalne. Parametr „q” określa minimalny stopień kompresji
stosowane poprzez określenie dokładnego sposobu rejestrowania informacji o obrazie. Zazwyczaj będzie to „q”.
ustaw tak, aby ciche sceny zużywały mniej niż określone maksimum (około 6 lub 8), ale
szybko poruszające się sceny nadal będą miały ograniczoną przepływność. Dla celów archiwalnych ustawienie a
maksymalna przepływność wystarczająco wysoka, aby nigdy nie została osiągnięta (np. 10Mbps) i aq 2 lub 3 ar
rozsądne wybory.
Przykład:
> lav2yuv strumień.avi │ yuvscaler -I AKTYWNE_352x240+0+24 │ mpeg2enc -b 1152 -r 16 -4 1 -2 1
-o wideo.m1v
Zwykle na górze i na dole znajduje się prawie czarna ramka i duża przepustowość
jest używany do czegoś, czego nie lubisz. Opcja yuvscaler -I ACTIVE ustawia wszystko
nie znajduje się w opisanym obszarze na czarno, ale rozmiar obrazu (352x288) nie ulega zmianie. Więc ty
mają prawdziwą czarną ramkę, koder używa tylko kilku bitów do ich kodowania. Nadal jesteś
zgodny z formatem VCD w tym przykładzie. Aby określić aktywny ekstrakt okna
jedna klatka do formatu JPEG:
> lawtrans -f i -i 100 -o ramka.jpg test.avi
Następnie użyj swojego ulubionego programu do wyświetlania grafiki, aby określić aktywny rozmiar. -4 1 i
-2 1 opcji poprawia jakość o około 10%, ale konwersja jest wolniejsza.
W rozmiarze 352x288 (rozmiar 1/2 PAL utworzony przy użyciu opcji -d 2 podczas nagrywania)
wymagana przepływność wynosi/powinna mieścić się w przedziale 1000 - 1500 kBit/s. W przypadku systemu NTSC powinno to dotyczyć
to samo, ponieważ obraz jest mniejszy, ale jest więcej klatek na sekundę niż w PAL.
Tak czy inaczej, głównym czynnikiem jest jakość oryginału i stopień filtrowania. Słaby
Niefiltrowany materiał wysokiej jakości zazwyczaj wymaga większej szybkości, aby uniknąć widocznych artefaktów. Jeśli
chcesz zmniejszyć przepływność bez irytujących artefaktów podczas kompresji nadawanego materiału
powinieneś wypróbować jeden (lub więcej) filtrów szumów.
Przykład:
> lav2yuv strumień.avi │ mpeg2enc -b 1500 -n s -g 6 -G 20 -P -o wideo.m1v
Tutaj plik stream.avi będzie zakodowany za pomocą:
-b 1500
szybkość transmisji 1500 kBit/s
-ns
norma wejściowa wideo jest wymuszana na SECAM
-P
Zapewnia to pojawienie się 2 ramek B pomiędzy sąsiednimi ramkami I/P. Kilka popularnych plików MPEG-1
dekodery nie obsługują strumieni, które nie mają 2 ramek B pomiędzy ramkami I/P
-g 6 -G 20
koder może dynamicznie zmieniać rozmiar grupy obrazów, aby odzwierciedlić zmiany sceny.
Odbywa się to poprzez ustawienie maksymalnego rozmiaru GOP (flaga -G) większego niż minimalny (flaga -g).
W przypadku płyt VCD rozsądne wartości mogą wynosić minimum 9 i maksymalnie 15. W przypadku płyt SVCD 9 i 15
byłyby dobrymi wartościami. Jeśli chcesz odtworzyć go tylko na odtwarzaczu SW, możesz użyć innego min-
wartości maksymalne.
Przykład:
> lav2yuv strumień*.avi │ mpeg2enc -b 1500 -r 16 -4 1 -2 1 -S 630 -B 260 -o
video_n1_1500_r16_41_21_S630_B240.m1v
lav2yuv przetwarza wszystkie pliki strumieniowe. Następnie mpeg2enc otrzymuje pewne opcje, które sprawiają, że
zakodowany strumień wygląda ładniej. Za pomocą -S 630 oznacza, że mpeg2enc oznacza strumień w taki sposób, że mplex
generuje nowy strumień co 630MB. Jedną ważną rzeczą jest użycie -B opcja która
określa przepływność inną niż wideo (informacje audio i multipleksowe). The -B wartość 260 powinna
będzie w porządku w przypadku dźwięku o rozdzielczości 224 kBit i informacji multipleksowanych. Aby uzyskać więcej informacji, spójrz
w skryptach kodujących w katalogu skryptów.
Przykład multipleksowania MPEG-1
Przykład:
>złożone dźwięk.mp2 wideo.m1v -o moje_wideo.mpg
Łączy strumień sound.mp2 i video.m1v w my_video.mpg. To tylko tak działa
łatwe, jeśli masz CBR (opcja -q nie była używana z mpeg2enc).
Przykład:
multipleks -V -r 1740 audio.mp2 wideo_vbr.m1v -o vbr_stream.mpg
Tutaj multipleksujemy strumień o zmiennej przepływności. mplex jest teraz multiplekserem jednoprzebiegowym, więc tak
nie możemy wykryć maksymalnej szybkości transmisji bitów i musimy ją określić. Szybkość transmisji danych dla wyjścia
strumień to: audio bitrate + szczyt szybkość transmisji wideo + 1-2% dla multipleks Informacja. Jeśli dźwięk (-b
224) ma 224 kBit, wideo ma 1500 kBit (było zakodowane za pomocą -b 1500 -q 9), więc mamy 1724 *
1.01 lub około 1740 kBit.
Tworzenie MPEG-2 Filmy
MPEG-2 jest zalecany dla źródeł o rozdzielczości większej niż 352x240 dla NTSC i 352x288
dla PAL-a. MPEG-2 może także obsługiwać źródła z przeplotem, np. nagrania z telewizora przy pełnej rozdzielczości
rozdzielczość.
MPEG-2 umożliwia wykorzystanie dźwięku MPEG Layer 3 (mp3). Możesz więc użyć swojego ulubionego
mp3encoder do tworzenia dźwięku. Jednakże dźwięk w formacie MP3 nie jest dostępny w przypadku płyt DVD. To
najlepiej używać dźwięku w formacie MP2 (warstwa 2). Dźwięk może być również strumieniem VBR.
MPEG-2 jest zwykle strumieniem VBR. Tworzenie MPEG-2 z optymalizacją wymaga dużej ilości procesora
moc. Film o podwójnej rozdzielczości NIE jest 4 razy większy od strumienia MPEG-1.
W zależności od ustawień jakości będzie on około 1.5 do 3 razy większy niż
Strumień MPEG-1 w niższej rozdzielczości. Przykład tworzenia dźwięku MPEG-2
> law2wav editlist.eli │ mp2 enc -o dźwięk.mp2
Możesz zaoszczędzić trochę bitów, mówiąc mp2enc, aby używał niższej przepływności (opcja -b), na przykład 160 lub
192 kBitów/s. Możesz dodać -r 44100, aby mpeg2enc generował próbkowanie 44.1 kHz
oceń dźwięk. Mam nadzieję, że nie muszę wyjaśniać użycia kodera MP3. Ale powinieneś
nie używaj wszystkich dostępnych opcji. Przykład tworzenia wideo MPEG-2
> lav2yuv editlist.eli │ mpeg2enc -f 3 -b 3000 -q 9 -o wideo.m2v
Bardzo prosty przykład wideo MPEG-2. Najważniejszą opcją jest -f 3. To mówi
mpeg2enc, że powinien utworzyć strumień MPEG-2. Ponieważ jest to ogólny format MPEG-2, musisz to zrobić
użyj opcji -b bitrate. I powinieneś użyć opcji -q, ponieważ zwykle potrzebujesz spacji
zapisywanie strumienia VBR. Podczas korzystania ze strumieni VBR opcja -b informuje mpeg2enc o maksymalnej przepływności
które można wykorzystać. Opcja -q informuje mpeg2enc, jaką jakość powinny mieć strumienie. The
bitrate ma górną granicę wartości określonej przez -b.
> lav2yuv editlist.eli │ mpeg2enc -f 3 -4 1 -2 1 -q7 -b 4500 -V 300 -P -g 6 -G 18 -I 1 -o
wideo.m2v
Spowoduje to wygenerowanie strumienia MPEG-2 o wyższej jakości, ponieważ były dostępne opcje -4 1 i -2 1
używany. Za pomocą -b 4500 -q 7 określasz mpeg2enc maksymalną przepływność i współczynnik jakości. -V
to rozmiar bufora wideo używany do dekodowania strumienia. W przypadku odtwarzania SW może to być dużo
wyższa niż domyślna. Dynamiczny GOP jest ustawiany za pomocą -g i -G. Pomocny może być większy rozmiar GOP
zmniejszyć przepływność wymaganą dla danej jakości, ale można wprowadzić bardzo duże rozmiary
artefakty spowodowane skumulowanymi błędami zaokrągleń DCT/iDCT. Opcja -P zapewnia również, że 2
Ramki B pojawiają się pomiędzy sąsiednimi ramkami I/P. Opcja -I 1 informuje mpeg2enc, że plik
źródłem jest materiał z przeplotem, taki jak filmy. Istnieje (czasochłonny) ruch z przeplotem
logika kompensacji obecna w mpeg2enc. Mpeg2enc użyje tej logiki, jeśli rozmiar pliku
kodowane klatki są większe niż rozmiar VCD zgodny z normą telewizyjną.
Jeśli usuwasz przeplot z filmu za pomocą yuvdeinterlace, powinieneś powiedzieć mpeg2enc, że tak się dzieje
nie ma potrzeby szacowania ruchu dla materiału z przeplotem. Musisz użyć opcji -I 0
mpeg2enc, aby powiedzieć, że klatki zostały już usunięte z przeplotem. Zaoszczędzi to dużo czasu
podczas kodowania. Jeśli nie użyjesz -I 0, nie spowoduje to problemów, kodowanie będzie po prostu
zająć dłużej.
Możesz także użyć opcji skalowania, które optymalizują (odszumiają) obrazy, aby je zmniejszyć
strumienie. Opcje te opisano szczegółowo w poniższych sekcjach. Które wartości
powinien być używany do kodowania VBR?
Opcja -q kontroluje minimalną kwantyzację strumienia wyjściowego. Kwantyzacja
kontroluje precyzję kodowania informacji o obrazie. Im niższa wartość, tym
lepsza jakość obrazu. Wartości poniżej 4 są wartościami ekstremalnymi i należy ich używać tylko wtedy, gdy wiesz
co robisz
Zwykle musisz ustawić maksymalną przepływność za pomocą opcji -b. Trudne zadanie polega na tym
ustaw wartość opcji -q i opcji -b, która tworzy ładny film bez użycia
zbyt duża przepustowość i nie wprowadza zbyt wielu artefaktów.
Współczynnik jakości należy wybrać w taki sposób, aby wyjście multipleksowe Szczytowa przepływność i
średnia przepływność różni się o około 20-25%. Jeśli różnica jest bardzo mała (mniej niż
10%) jest prawdopodobne, że w scenach o dużym ruchu zaczną pojawiać się artefakty. Najbardziej
Najczęstszą przyczyną tego, że średnia stawka jest zbyt bliska (lub równa) stawce maksymalnej, jest błędna
wartość maksymalnej przepływności lub zbyt wysoki współczynnik jakości.
Kombinacją, która wygeneruje więcej artefaktów, niż można zliczyć, jest SVCD z maksimum
bitrate wideo 2500 kBit i współczynnik jakości 1 lub 2. Dla SVCD z limitem wideo
2500 kBit, współczynnik jakości 7-11 pasuje całkiem nieźle (8 jest wartością domyślną). Jeśli używasz filtra
programy lub mają bardzo dobre źródło, takie jak telewizja cyfrowa, materiały DVD lub renderowane
obrazów, podczas tworzenia dysków SVCD można zastosować współczynnik jakości 6. Jeśli Twój odtwarzacz SVCD/DVD
obsługuje niestandardowe przepływności, które można zwiększyć powyżej standardowego maksimum
2788 kBit/s (wideo i dźwięk). Podczas korzystania z wyższej szybkości transmisji bitów i współczynnika jakości
sceny będą wyglądać znacznie lepiej, ale oczywiście czas odtwarzania płyty będzie krótszy.
Ten sam (7–11) współczynnik jakości dla obrazu w pełnym rozmiarze i maksymalnej szybkości transmisji bitów od 3500 do 4000
kBit wygeneruje kilka artefaktów.
W przypadku SVCD/DVD możesz spodziewać się rezultatu podobnego do opisanego, jeśli maksymalna przepływność nie jest dostępna
ustaw za nisko:
q <= 6 naprawdę ostrych zdjęć i dobrej jakości
q <= 8 dobra jakość
q >= 10 średnia jakość
q >= 11 niezbyt dobrze
q >= 13 tutaj nawet nieruchome sekwencje mogą wyglądać blokowo
Kodowanie docelowego telewizora (z przeplotem) lub monitora (progresywne)
Oprócz formatu progresywnego MPEG-2 obsługuje dane z przeplotem. Film MPEG-2 może
być z przeplotem lub progresywne. Zależy to od źródła (filmu lub transmisji) i od
urządzenie przeglądające.
Jeśli kodujesz film, oba pola powinny być takie same. Usuń przeplot ze strumienia za pomocą
yuvdeinterlace lub jeśli masz źródło wysokiej jakości i nie musisz używać denoisera
z yuvcorrect -T NOT_INTERLACED. Ustaw także opcję trybu przeplotu mpeg2enc (-I) na 0.
Oznacza to, że nie ma przeplotu. Tak naprawdę nie potrzebujemy tutaj usuwania przeplotu, ponieważ
pomiędzy polami kadru nie ma ruchu. Musimy jedynie zjednoczyć te dwie dziedziny
w jedną progresywną ramkę.
Ten film powinien bez problemu odtworzyć się na dowolnym urządzeniu (telewizorze lub monitorze).
Jeśli masz źródło z przeplotem (rozgłoszenie), możesz zakodować je jako strumień z przeplotem. Lub
usuń przeplot ze strumienia i zakoduj go jako strumień progresywny. Jeśli usuniesz przeplot za pomocą
yuvdeinterlace stracisz szczegóły. Ale jeśli planujesz odtworzyć nagrany strumień na swoim
odtwarzacza DVD i telewizora, usuwanie przeplotu nie byłoby rozsądne. Jeśli tylko chcesz
odtwórz go na monitorze (wyświetlanie progresywne) obraz będzie wyglądał lepiej podczas odtwarzania
z powrotem, jeśli usunięto przeplot. Jeśli odtwarzacz, którego używasz, potrafi usuwać przeplot, nie ma to znaczenia
jeśli zakodowany film zawiera klatki z przeplotem lub klatki progresywne.
Jeśli planujesz usunąć przeplot ze strumienia, możesz to zrobić tylko za pomocą yuvdeinterlace i ustawić opcję
mpeg2enc -I 0. Jeśli nie chcesz usuwać przeplotu ze strumienia, nie musisz ustawiać żadnego
opcja specjalna (nie używaj yuvdeinterlace i mpeg2enc -I 0)
Jeśli chcesz zatrzymać strumień i spojrzeć na nieruchomy obraz, powinieneś usunąć przeplot. Ponieważ wtedy
obraz jest wolny od migotania podczas pauzy.
Jeśli masz film (progresywny) z zmieszanymi razem fragmentami transmisji (z przeplotem).
(jak w filmie dokumentalnym, w którym niektóre fragmenty głośnika są nagrane z przeplotem, a inne
części są sfilmowane) musisz wybierać pomiędzy dobrymi sekwencjami filmowymi i przeciętnymi nieruchomymi obrazami
lub przeciętnie wyglądające sekwencje filmów z dobrymi zdjęciami.
W przypadku dobrego filmu ze średnimi kadrami nie należy usuwać przeplotu. Do przeciętnych sekwencji filmowych z
dobre zdjęcia, a następnie usuń przeplot (używając yuvdeinterlace i mpeg2enc -I 0). Multipleksowanie MPEG-2
przykład
> multipleks -f 3 -b 300 -r 4750 -V audio.mp3 wideo.m2v -o final.mpg
Teraz oba strumienie (audio w formacie mp3 i wideo w formacie mpeg2) są multipleksowane w jeden strumień
(końcowy.mpg). Musisz skorzystać z -f 3 opcja informowania mplex o formacie wyjściowym. Ty także
muszę dodać -b opcję rozmiaru buforów dekodera o tej samej wartości użytej podczas kodowania
wideo. -r to współczynnik wideo + audio +1-2% informacji złożonych.
-Vopcja informuje, że źródłem multipleksowania jest strumień VBR. Jeśli tego nie użyjesz
opcja mplex tworzy coś w rodzaju strumienia CBR z szybkością transmisji, z jaką mu to powiedziałeś
dotychczasowy -r opcja. Te strumienie są zwykle DUŻE.
Tworzenie Wideo CD (płyty VCD)
VCD to ograniczona wersja wideo MPEG-1. Format VCD został zdefiniowany przez firmę Philips. Cel
było użycie jednobiegowego napędu CD i innego taniego sprzętu (nieelastycznego), aby mieć tani
Odtwarzacz HW. Z tego powodu istnieją ograniczenia dotyczące obrazu i dźwięku używanego do tworzenia płyt VCD.
Szybkość transmisji wideo wynosi 1152 kBit, a dźwięk MP224 2 kBit/s. Nie wolno Ci używać
opcja -q, dynamiczne rozmiary GOP i bufor wideo są ograniczone do 46kB. Rozmiar obrazu
jest ograniczona do 352x240 dla NTSC i do 352x288 dla PAL.
Jeśli nie masz odtwarzacza VCD (tylko) i planujesz używać odtwarzacza DVD, to wystarczy
możliwe, że odtwarzacz DVD będzie wystarczająco elastyczny, aby umożliwić wyższą przepływność i dynamiczną GOP
rozmiary, większy bufor wideo i tak dalej Przykład tworzenia dźwięku VCD
> law2wav strumień.avi │ mp2 enc -V -o dźwięk.mp2
-V wymuś wyjście zgodne z VCD 2.0. Tam częstotliwość próbkowania dźwięku jest ustalona na 44.1 kHz. I
możesz wybrać szybkość transmisji bitów dla dźwięku mono na 64, 96 lub 192 kBit/s. Jeśli masz
dźwięk stereo, możesz wybrać 128, 192, 224 lub 384 kBit/s. Dla graczy sprzętowych, ty
powinno trzymać się 44.1 224 kBps Stereo Layer 2 Audio.VCD Przykład tworzenia wideo
> lav2yuv strumień.avi │ yuvscaler -O VCD │ mpeg2enc -f 1 -r 16 -o wideo.mpg
Dla wyjścia kompatybilnego z VCD -f 1 ustawia wszystkie opcje w mpeg2enc, jeśli potrzeba. Wygląda na to że
wiele odtwarzaczy VCD (na przykład Avex) nie jest w stanie odtwarzać zakodowanych strumieni MPEG
z promieniem wyszukiwania większym niż 16, więc nie używaj opcji -r, aby zastąpić wartość domyślną
z 16.
> lav2yuv strumienie.eli │ mpeg2enc -f 1 -4 1 -2 1 -S 630 -B 260 -P -o wideo.m1v
Korzystanie z '-S 630 " oznacza, że mpeg2enc zaznacza strumień, dzięki czemu mplex generuje nowy strumień
każde 630 MB. Jedną ważną rzeczą jest użycie -B opcja określająca plik inny niż wideo
(informacje audio i multipleksowe) bitrate. Wartość -B wynosząca 260 powinna być odpowiednia dla dźwięku z
Informacje 224 kBit i multipleks. Aby uzyskać więcej informacji, spójrz na skrypty kodujące
w katalogu skryptów. Multipleksowane strumienie powinny z łatwością zmieścić się na płycie CD o pojemności 650 MB.
Wartość domyślna (-B) wynosi 700 MB dla wideo. mpeg2enc automatycznie zaznacza każdy strumień
w tym rozmiarze, jeśli opcja -B nie została użyta do ustawienia innej wartości. Jeśli masz płytę
gdzie możesz zapisać więcej danych (być może aż 800MB) musisz ustawić opcję -S lub
w przeciwnym razie mpeg2enc oznaczy strumień jako 700 MB, a mplex podzieli tam strumień.
Co prawie na pewno nie jest tym, czego chcesz.
Przykład multipleksowania VCD
> multipleks -f 1 dźwięk.mp2 wideo.mpg -o vcd_out.mpg
Opcja -f 1 włącza wiele dziwnych rzeczy, na które w przeciwnym razie nie byłoby miejsca w szanowanym pliku
multiplekser!Tworzenie płyty CD
Multipleksowane strumienie muszą zostać przekonwertowane na format zgodny z VCD. Dokonuje się tego poprzez
vcdimager
> vcdimager test wideo.mpg
Tworzy a wideocd.bin, plik danych i a videocd.cue który jest używany jako plik kontrolny dla
cdrdao.
Do wypalenia obrazu używasz cdrdao. Cdrdao to kolejny świetny projekt Sourceforge
znaleźć w: Notatki
W przypadku kodowania MPEG-1 typowego (45-minutowego) programu lub 90-minutowego filmu z
transmisja analogowa, idealna powinna być stała przepływność wynosząca około 1800 kBit/s. The
wynikowe pliki mają rozmiar około 700M przez 45 minut, co dobrze pasuje do surowych danych XA MODE2
utwór na płycie CD-R. W przypadku źródeł czysto cyfrowych (strumienie DTV lub DVD i podobne) działa VCD 1152
w porządku.
Uwaga: Jeśli kodujesz VBR MPEG-1 (-q), pamiętaj, że sprzęt prawdopodobnie nie został do tego zaprojektowany
odtwarzania, ponieważ nie jest to uwzględnione w specyfikacjach. Jeśli zadziała, bądź bardzo szczęśliwy. mam
zauważyłem, że w przypadku strumienia MPEG-1 pomocne jest poinformowanie programu vcdimager, że jest to plik SVCD.
vcdimager narzeka (ale tylko z ostrzeżeniem, a nie z błędem krytycznym), ale powinieneś móc
go spalić. Może to przekonać gracza do użycia różnych procedur w oprogramowaniu sprzętowym i
odtwórz go poprawnie, ale nie ma na to gwarancji. Przechowywanie plików MPEG
Jeśli nagrasz dane jako ścieżki w trybie XA 2, możesz zmieścić znacznie więcej na płycie CD (w formacie
koszt korekcji/wykrywania błędów). Możesz do tego użyć vcdimager i vcdxrip (część
pakietu vcdimager), aby wyodrębnić („zgrać”) powstałe pliki. Dla lepszej jakości
są SVCD i XVCD oraz DVD.
Obecnie SVCD jest w pełni obsługiwany ze wstępnie ustawionym formatem w formacie multipleksowym i narzędziami do tworzenia
dyski. Strumienie MPEG, które można odtwarzać za pomocą sprzętu i oprogramowania odtwarzacza DVD, można z łatwością odtwarzać
wyprodukowane przy użyciu mpeg2enc/mplex
Jeśli Twój odtwarzacz nie obsługuje formatu SVCD, może się okazać, że poradzi sobie ze strumieniami VCD, które je obsługują
znacznie wyższe niż standardowe przepływności. Często możliwa jest prędkość nawet 2500 kBit/s. The
Odtwarzacze DVD kilku marek mogą również odtwarzać dyski SVCD i VCD spoza specyfikacji. Z
przy wyższych szybkościach transmisji i dobrej jakości materiale źródłowym warto wypróbować flagę -h mpeg2enc
które wytwarzają strumień tak ostry, jak pozwalają na to ograniczenia standardu VCD.
Jeśli jednak Twój odtwarzacz to obsługuje i masz cierpliwość do dłuższego kodowania
razy SVCD jest znacznie lepszą alternatywą. Korzystanie z bardziej wydajnego formatu MPEG SVCD więcej niż
podwaja rozdzielczość VCD, tworząc zazwyczaj pliki mniej niż dwukrotnie większe.
Tworzenie CDLS
Super Video CD (SVCD) to udoskonalenie formatu Video CD opracowane przez Chińczyków
wspierany przez rząd komitet producentów i badaczy. Ostateczna specyfikacja SVCD była taka
ogłoszony we wrześniu 1998 r. Dobrym wyjaśnieniem formatu SVCD firmy Philips może być
znalezione tutaj: .
Nagrywaj w pełnej rozdzielczości telewizyjnej (oznacza: -d 1 dla PAL to 720x576) Rozdzielczość dotyczy
NTSC to 480x480 lub PAL 480x576, więc wiesz, dlaczego powinieneś nagrywać w pełnym rozmiarze. Dźwięk SVCD
Przykład stworzenia
> law2wav strumień.avi │ mp2 enc -V -e -o dźwięk.mp2
Specyfikacje SVCD pozwalają na znacznie szerszy wybór szybkości dźwięku, choć nie jest to konieczne
użyj 224 kBit/s. Dozwolona jest dowolna szybkość transmisji dźwięku w zakresie od 32 do 384 kBit/s. Dźwięk może
być VBR (zmienna przepływność). -e włącza ochronę przed błędami CRC dla dźwięku. CRC
musi być włączony, aby był zgodny ze standardem SVCD, ale wydaje się, że większość graczy nie płaci
należy zwrócić uwagę na informacje CRC. Informacje CRC wymagają 2 bajtów na ramkę audio
Przybliżony wzór na długość ramki dla MPEG-1 Layer-II to:
(długość ramki w bajtach) = 144 * (szybkość bajtów) / (częstotliwość próbkowania)
Jeśli masz typowe ustawienia VCD, dane CRC potrzebują około 0,27% wszystkich danych. W
w najgorszym przypadku, gdy masz strumień MONO o szybkości transmisji 32 tys., dane CRC wymagają 1,92%.SVCD
Przykład tworzenia wideo
> lav2yuv strumień.avi │ yuvscaler -O CDLS │ mpeg2enc -f 4 -q 7 -I 1 -V 200 -o wideo.m2v
-f 4
ustawia opcje dla mpeg2enc na SVCD
-q 7
powiedz mpeg2enc, aby wygenerował strumień o zmiennej przepływności
-Ja 1
powiedz mpeg2enc, aby założył, że oryginalny sygnał to wideo z przeplotem polowym, gdzie jest nieparzyste
rzędy pikseli są próbkowane w odstępie połowy klatki po parzystych w każdej klatce. -I
0 (wyjście progresywne (bez obrazów pola)) będzie również działać w systemie PAL
Można używać niższych przepływności, ale zgodnie ze standardowymi limitami SVCD całkowity przepływność (audio oraz wideo)
do 2788800 Bit/sek. Tak więc przy dźwięku 224 Kb/s i obciążeniu 2550 może już być marginalnie
obcisły. Ponieważ format SVCD umożliwia dowolną szybkość transmisji dźwięku w zakresie od 32 do 384 kBit/s, można
zaoszczędź kilka bitów/s, używając dźwięku 192k (lub w przypadku materiałów niemuzycznych 160k).
SVCD obsługuje zmienną przepływność (VBR), ponieważ MPEG-2 to zwykle VBR, ale z góry
limit szybkości transmisji wideo wynoszący 2500 kBit/s. Za pomocą flagi -f 4 koder ustawia również dynamiczny GOP
z dolnym limitem -g 6 i górnym limitem -G 18. Oszczędza to kilka bitów/s i poprawia
jakość obrazu podczas zmiany sceny. Podczas kodowania z -f 4 mpeg2enc ignoruje
opcje szybkości transmisji wideo (-b) i promienia wyszukiwania (-r). Jeśli użyjesz -f 5, musisz określić
bitrate i inne opcje do mpeg2enc.
Kolejna możliwość dla filmów w formacie PAL (europejski styl 25 klatek/50 pól na sekundę).
jest:
> lav2yuv strumień.avi │ yuvscaler -O CDLS │ mpeg2enc -f 4 -I 0 -V 300 -o wideo.m2v
Filmy są kręcone na kliszy z szybkością 24 klatek na sekundę. W przypadku transmisji w systemie PAL film jest po prostu wyświetlany
nieco „za szybko” przy 25 klatkach/sek. (ku wielkiemu bólowi osób z absolutnym tonem
poczucie wysokości dźwięku). Flaga -I 0 wyłącza żmudne obliczenia potrzebne do kompensacji
przeplatanie pól, co zapewnia znacznie szybsze kodowanie.
Niestety, filmy nadawane w systemie NTSC (30 klatek/60 pól sek. w stylu amerykańskim) będą takie
powodują bardzo słabą kompresję. Próbkowanie „rozwijane” wykorzystywane do tworzenia 60 pól na sekundę
z 24 klatek drugi film oznacza, że połowa klatek w systemie NTSC *jest* przeplatana polem.
Nie zapomnij o opcjach -S i -B wymienionych powyżej. Chcesz, aby strumień zmieścił się na płycie CD
prawda? Przykład multipleksowania SVCD
> multipleks -f 4 -b 300 -r 2750 dźwięk.mp2 wideo.m2v -o svcd_out.mpg
-f 4
mówi mplexowi, aby multipleksował SVCD
-r 2750
to obliczona szybkość transmisji audio + wideo + 1-2% informacji multipleksowych
-b 300
to bufor dostępny na urządzeniu odtwarzającym (taka sama wartość jak w przypadku pliku wideo
kodowanie (opcja -V mpeg2enc). SVCD tworzący płytę CD
Przykład:
> vcdimager -t svcd test wideo.mpg
Tworzy a wideocd.bin, plik danych i a videocd.cue który jest używany jako plik kontrolny dla
cdrdao.
Użyj cdrdao, aby nagrać obraz, jak wspomniano wcześniej.
UWAGA:Jeśli chcesz zbudować „niestandardowy” VCD/SVCD, będziesz musiał użyć multipleksu -f 2 i -f 5
przełączniki.
UWAGA:Pliki VCD i SVCD mogą działać na twoim odtwarzaczu sprzętowym lub nie. Jest wiele doniesień, że
to działa całkiem dobrze. Nie martw się, jeśli to nie zadziała. Nie jestem też za to odpowiedzialny
bezużyteczne płyty CD. („podstawki”)
Tworzenie DVD
To stwierdzenie było prawdziwe kilka lat temu: wszystko w tej sekcji jest nowe. The
ograniczenia, o których tu wspomniałem, mogą nie istnieć w aktualnej wersji. Obecnie (grudzień 2007)
Tworzenie DVD działa.
Potrzebujesz oczywiście nagrywarki DVD. Posiadałem DVD+RW Ricoh, który działa i znam DVD-
Nagrywarka RAM z możliwością nagrywania płyt DVD-R. Dyski te współpracują także z odtwarzaczami DVD. Teraz najbardziej
Nagrywarki DVD mogą nagrywać zarówno media +, jak i -, więc nie powinno to już stanowić problemu.
To, jakich programów użyjesz do nagrywania, zależy od napędu nagrywarki DVD.
Do tworzenia i zapisywania plików VOB, IFO i BUP używamy programu DVDauthor. Dostępne od
Sourceforge (mogłeś się domyślić) Przykład tworzenia .DVD Audio
> law2wav strumień.eli │ mp2 enc -o dźwięk.mp2
Częstotliwość próbkowania musi wynosić 48 kHz. MP2enc domyślnie tworzy częstotliwość próbkowania 48 kHz.
Jeśli nie jest to 48 kHz, mp2enc ponownie spróbuje dźwięku, aby uzyskać częstotliwość próbkowania. Jeśli dźwięk
jest nagrywany z częstotliwością 48 kHz, wówczas nie jest potrzebne ponowne próbkowanie, a do kodowania można użyć narzędzia Toolame
(jest szybszy niż mp2enc). Przykład tworzenia DVD Video
> lav2yuv strumień.eli │ mpeg2enc -f 8 -o wideo.m2v
-f 8
Spowoduje to prawidłowe ustawienie opcji dla wideo MPEG-2 zgodnego z płytą DVD
standard. Maksymalna przepływność jest ustawiona na 7500 kBps, a rozmiar bufora wideo jest ustawiony na
230 KB. Domyślny współczynnik jakości jest ustawiony na 8. mpeg2enc obecnie nie ustawia automatycznego
długość sekwencji, tak jak ma to miejsce w przypadku VCD/SVCD.
Można również zastosować inne opcje uzyskania strumienia o niskiej przepływności i wysokiej jakości
zastąpić ustawienia domyślne wymienione powyżej. Możesz także użyć yuvdenoise, aby zwiększyć
jakość obrazu, jeśli dane wejściowe są zaszumione (na przykład z taśmy VHS). Typowy
polecenie będzie wyglądać następująco:
lav2yuv moby.eli │ juvdenoise │ mpeg2enc -f 8 -q 7 -4 1 -2 1 -P -I 0 -N -o
wideo_DVD.m2vPrzykład multipleksowania DVD
> multipleks -f 8 dźwięk.mp2 wideo.m2v -o my_dvdlikestream.mpg
-f 8
Tutaj ponownie określamy, że chcemy mieć strumień MPEG podobny do DVD. multipleks nie może zrobić wszystkiego
fantazyjne rzeczy dozwolone dla DVD, ale jest na tyle blisko, że odtwarzacze HW-DVD to akceptują.
-o
tam podajemy nazwę pliku wyjściowego. Przykład tworzenia DVD
Temat ten zostanie omówiony w dokumentacji programu DVDauthor. Na pytania
zobacz Ogólnie będzie to działać tak:
> autor dvd -o wyjście/ strumień1.mpg strumień2.mpg ... mój_dvdlikestream.mpg; autor dvd -T -o
wyjście/
Otrzymasz katalog z katalogami AUDIO_TS i VIDEO_TS. Nagrywanie danych z
dysk do nagrywarki DVD+-R/+-RW można wykonać w następujący sposób:
Growisofs -Z /dev/scd2 -dvd-wideo mójDVD/
Jeśli posiadasz napęd DVD+RW/+R, dobrym miejscem na uzyskanie dodatkowych informacji jest:
strona. Potrzebujesz także wersji cdrtools z DVD-wideo wsparcie. Narzędzia cdr
Wiadomo, że wersja 1.11a27 działa, ale istnieją już nowsze wersje.
W przypadku innych nagrywarek polecenia nagrywania DVD będą inne. Możesz dostać trochę więcej
informacje w pakiecie DVDauthor. Nie ma żadnej gwarancji, że to w ogóle zadziała!!!
Tworzenie DIVX Filmy
lav2avi.sh
Innym sposobem tworzenia DIVX jest program mencoder który pochodzi z projektu mplayer. .
Więcej informacji na temat mencodera znajdziesz w pomocy i dokumentach mencodera/mplayera. A
pierwszy i drugi przebieg podają na końcu przebiegu wskazówki dotyczące szybkości transmisji, której można użyć
kodowanie do określonego rozmiaru (650 MB, 700 MB i 800 MB). Używa tego skrypt lav2avi.sh
informacje, jeśli są podane (w przypadku krótkich strumieni są one pomijane przez mencoder). Poszukaj parametru
preferowany rozmiar w skrypcie. Możesz także określić inne parametry używane do kodowania
koderParam opcja w skrypcie. Aby zapoznać się z opisem użytecznych parametrów, spójrz
w podręczniku mplayera/mencodera.
Nazwa pliku wyjściowego to nazwa pliku wejściowego (pierwsza opcja), ale z rozszerzeniem
avi. Jeśli rozmiar pliku jest mniejszy niż określony przez preferowany rozmiar to dlatego, że źródło
był bardzo wysokiej jakości (bez szumów), a określona przepływność była wyższa niż wymagana.
Zwykle otrzymujesz 700 MB na 1.5-godzinny film przy połowie rozmiaru obrazu i przepływności około 900, która
oznacza dobrą jakość divx (oczywiście zakładając dobrej jakości materiał źródłowy).
Skrypt wykonuje 3-etapowe kodowanie:
Pierwszy krok - kodowanie dźwięku
Krok 2 - pierwsze przejście wideo
Krok 3 - drugie przejście wideo
Dokumentacja mplayer/mencoder potępia użycie metody kodowania 3-przebiegowego (it
może powodować problemy z synchronizacją A/V) i zaleca stosowanie metody 2-przebiegowej. The
Dokumentacja mencodera/mplayera jest obszerna i zawiera wiele pomocnych wskazówek (oraz bitrate
kalkulator w katalogu TOOLS/).
Do kodowania użyj szybkiego kodeka ffmpeg (lavc). Daje dobre rezultaty w połączeniu z hajem
dobry występ. Do kodowania dźwięku używany jest plik MP3. Do kodowania wszystkich części używa systemu Unix
Rury. Oznacza to, że NIE potrzebujesz dodatkowego miejsca na dysku twardym, na którym znajdują się wszystkie pliki glav
zostaną dokonane manipulacje. Do kodowania dźwięku skrypt wykorzystuje kolejkę FIFO.
Jeśli chcesz dostosować skrypt do własnych potrzeb skorzystaj z poniższych wskazówek:
Dane wyjściowe pierwszego kroku to plik o nazwie nr ramki.avi z zakodowanym dźwiękiem
Drugi krok to użycie nr ramki.avi a wyjściem jest plik tekstowy o nazwie lavc_stats.txt z czasem
informacje
Trzeci krok to użycie nr ramki.avi oraz lavc_stats.txt do kodowania strumienia na wyjście
filet movie2.avi
Jeśli chcesz zmienić tylko szybkość transmisji wideo, zachowaj plik nr ramki.avi skomentuj pierwszy krok
kodowanie i powtórz drugi i trzeci krok. Nie zapomnij usunąć linii, w której
nr ramki.avi jest usunięty.
Optymalizacja strumienia
Korzystanie z filtrów pomaga zwiększyć jakość obrazu strumieni wideo o stałej przepływności (CBR).
W przypadku wideo VBR (zmienna przepływność) rozmiar pliku jest zmniejszony.
Przykład:
> lav2yuv strumień.avi │ filtr yuvmedian │ mpeg2enc -o wideo.m1v
Tutaj do poprawy obrazu służy program yuvmedianfilter. To usuwa część niskich wartości
szumy częstotliwości na obrazach. To także trochę zmiękcza obraz. To wymaga centrum
wskaźnika i uśrednia liczbę otaczających go pikseli mieszczących się w określonym progu. To
następnie zastępuje środkowy piksel tą nową wartością. Możesz także użyć -r (promień)
opcja innego promienia wyszukiwania.
UWAGA:promień większy niż domyślna wartość 2 jest strasznie powolny!
yuvmedianfilter ma osobne ustawienia dla luminacji i chrominancji. Możesz kontrolować wyszukiwanie
niezależnie od promienia i progu wyzwalania. Jeśli użyjesz progu 0, to
filtrowanie jest wyłączone (-t 0 wyłącza filtrowanie luminacji, -T 0 wyłącza filtrowanie chromatyczne).
> lav2yuv strumień.avi │ filtr yuvmedian -r 3 -t 4 -T 0 │ mpeg2enc -o wideo.m1v
W tym przykładzie promień wyszukiwania luminacji wynosi 3 piksele, a próg wynosi 4 (domyślnie
wynosi 2) i wyłącza filtrowanie składników chrominancji. Czasami, w zależności od
materiału źródłowego, mediana filtrowania nasycenia może spowodować lekkie przesunięcie koloru w kierunku
zielony. Rozwiązaniem jest filtrowanie składowej lumy (wyłączenie filtrowania chrominancji).
do tego problemu.
Przykład:
> lav2yuv strumień.avi │ juvdenoise │ mpeg2enc -o wideo.m1v
Teraz używamy yuvdenoise do poprawy obrazu. Filtr głównie redukuje kolor i
szumy luminancji i migotanie spowodowane błędami fazowymi, ale jest również skuteczny w usuwaniu
plamki.
yuvdenoise usuwa szum z przeplotem, jeśli sygnał wejściowy jest z przeplotem. Możesz oczywiście zmienić
próg odszumiania (-g/t). Utworzenie czarnej ramki może obniżyć szybkość transmisji zakodowanego pliku
strumienia, ponieważ czyste czarne obszary kompresują się znacznie lepiej niż szum (przechwytywanie z formatu analogowego
źródła takie jak VHS i 8 mm zwykle mają kilka linii w czasie i na dole
Bardzo głośny). W tym celu możesz użyć skalera.
yuvdenoise stosuje inne podejście do filtrowania szumu. Więcej informacji o tym, jak
yuvdenoise oraz opisy jego opcji można znaleźć na stronie podręcznika.
Jeśli masz źródło wysokiej jakości, powinieneś obniżyć filtr do takich poziomów: -g
0,255,255 -t 2,2,2. Możesz także użyć pliku mpeg2enc -h/--keep-hf opcja. Ta opcja
mówi mpeg2enc, aby zachowywał jak najwięcej informacji o wysokich częstotliwościach. Użycie -h will
znacznie zwiększyć szybkość transmisji (rozmiar pliku). Jeśli szybkość transmisji jest zbyt bliska wartości maksymalnej (ustawione
z -b) koder będzie musiał obniżyć jakość, aby uniknąć przekroczenia wartości maksymalnej
szybkość transmisji.
Wbudowanym filtrem w mpeg2enc jest opcja -N/--reduce-HF. Ta opcja tak naprawdę nie jest
filtr w zwykłym tego słowa znaczeniu. Raczej zmienia to, jak dokładnie informacje o wysokiej częstotliwości
jest kodowany. Często wysoka częstotliwość jest hałasem. Na ostrym poziomie masz także wysokie częstotliwości
granice lub przejścia. Opcja -N może przyjmować wartości z zakresu od 0.0 do 2.0, gdzie ma wartość 0.0
nic (wyłącza wzmocnienie kwantyzatora wysokiej częstotliwości), a wersja 2.0 daje maksimum
wzmocnienie kwantyzacji. Wartość, której należy użyć, zależy od żądanej jakości wydruku i rozmiaru pliku.
Wartości -N mniejsze niż 0.5 są bardzo subtelne, natomiast wartość 1.0 zapewni dobre rezultaty
równowaga pomiędzy redukcją przepływności a jakością wyjściową. Użycie wartości -N powyżej 1.5 spowoduje
zauważalnie zmniejszają ostrość obrazu wyjściowego i są zwykle używane tylko dla słabych
wysokiej jakości źródeł (np. kaset VHS).
Używanie możliwości yuvmedianfilter do filtrowania jedynie chrominancji (-T) jest umiarkowanie skuteczne
przy redukcji szumów w ciemnych scenach bez zmiękczania obrazu w trybie normalnym (jaśniejszym)
sceny. Mediana filtrowania lumy (-t) spowoduje niższą przepływność, ale może powodować
utrata szczegółów (zmiękczenie). Filtrowanie tylko mediany Chroma jest mniej agresywne i jest dobre
do użycia w połączeniu z yuvdenoise.
Połączenie filtrów yuvdenoise, yuvmedianfilter i opcji mpeg2enc -N daje bardzo
duży stopień kontroli nad szybkością transmisji (rozmiarem pliku). Zmniejszenie (lub zwiększenie) w
szybkość transmisji zależy od materiału źródłowego i zastosowanych opcji kodowania/filtrowania. Więc my
nie może podać dokładnych liczb, o ile każda opcja i kombinacja zmniejszy rozmiar pliku,
tylko wytyczne.
Zwykle powinieneś używać opcji -N w zakresie od 0.5 do 1.5. Poniżej 0.5 już nie
znacznie zmniejsza przepływność (ale zachowuje ostrość). Przy wersji 1.5 i wyższej będziesz
zwróć uwagę na zmiękczenie obrazu wideo i możliwe artefakty (halo/dzwonienie) wokół krawędzi
obiekty (zwłaszcza tekst/napisy). Jeśli połączysz filtry, powinieneś użyć yuvdenoise
i może potem yuvmedianfilter. Może yuvmedianfilter nawet po skalowaniu. Mający
yuvmedianfilter w łańcuchu nie zmniejsza tak bardzo szybkości transmisji. Często użycie
Yuvdenoise wystarczy. Yuvmedianfilter jest bardzo pomocny, jeśli masz źródła niskiej jakości i
nie tak dużo, jeśli masz już dość dobrą jakość. Kiedy połączysz filtr i
bez tej opcji najprawdopodobniej zmniejszysz rozmiar pliku do około połowy rozmiaru pliku
korzystając z opcji i programów.
Ogólnie rzecz biorąc, agresywne filtrowanie spowoduje utworzenie mniejszych plików (niższa przepływność), ale zmniejszy rozmiar
jakość (szczegóły) obrazu. Mniej agresywne filtrowanie/przetwarzanie pozwoli zachować więcej
szczegółów, ale skutkuje większymi plikami.
Przykład:
> lav2yuv strumień.avi │ Yuvkineco -F 1 │ mpeg2enc -o wideo.m1v
yuvkineco jest używane w przypadku źródeł NTSC. Wykonuje konwersację z 30000.0/1001.0 (około
29.97) fps do 24000.0/1001.0 (około 23.976) fps, można to nazwać „odwróconym rozwijaniem 2-3”
więcej informacji na ten temat znajdziesz w rozwijanym menu README.2-3. yuvkineco usuwa tylko pliki specyficzne dla systemu NTSC
problemy.
Jeśli chcesz poprawić obraz, powinieneś także użyć yuvdenoise:
> lav2yuv strumień.avi │ Yuvkineco │ juvdenoise │ mpeg2enc -o wideo.m1v
Przykład
> lav2yuv strumień.avi │ yuvycshałas │ mpeg2enc -o wideo.m1v
yuvycsnoise jest również używany w systemie NTSC i specjalizuje się w szumie separacji Y/C w systemie NTSC. Jeśli
sprzęt do przechwytywania wideo ma tylko słaby separator Y/C, a następnie pionowe paski (szczególnie
czerwony/niebieski) pojawiają się szumy przypominające flagę szachownicy i odwrócenie jasności/ciemności na 1 klatkę.
yuvycsnoise redukuje dźwięki tego typu. Można także zastosować różne progi
luma/chroma i metoda optymalizacji. Ten filtr nie jest potrzebny przy pracy z DV
(cyfrowe wideo).
yuvycsnoise działa poprawnie tylko wtedy, gdy mamy NTSC z:
pełna wysokość (480 linii)
uchwycony pełny ruch (29.97 kl./s)
przechwycone przy użyciu słabego sprzętu oddzielającego Y/C
Aby uzyskać więcej informacji na temat yuvkineco i yuvycsnoise, przeczytaj plik README w yuvfilters
katalogiem.
Jeśli chcesz poeksperymentować, aby określić optymalne ustawienia denoizera, skalera i
więc zamień mpeg2enc na yuvplay. yuvplay odtwarza ramki yuv, dzięki czemu możesz je zobaczyć
jeśli opcje, które wybrałeś, czynią sprawę lepszą lub gorszą.
Polecenie wyglądałoby następująco:
> lav2yuv strumień.eli │ juvdenoise -opcje │ yuvscaler -opcje │ graj
Jeśli chcesz wiedzieć, o ile każde narzędzie obniża średnią przepływność. Możesz skorzystać z tej tabeli
aby zobaczyć, czego możesz się spodziewać, jeśli masz wideo w pełnym rozmiarze i chcesz utworzyć płytę DVD z rozszerzeniem
współczynnik jakości 5 i dopuszczalna maksymalna przepływność 8500kb/s.
bez odszumiania: 8300 kb/s (przeważnie osiąga górną granicę)
Yuvenoise: 7700 kb/s
mpeg2enc --reduce-hf: 7400 kb/s
yuvdenoise + yuvmedianfilter: 6000 kb/s
yuvdenoise + mpeg2enc --reduce-hf: 4900 kb/s
wszystkie powyższe: 3600 kb/s
Kompletujemy wszystkie dokumenty (wymagana jest kopia paszportu i XNUMX zdjęcia) potrzebne do -N│--zmniejsz-hf lub yuvdenoise to tylko niewielka poprawa, razem one
znacznie zmniejszyć przepływność. Tak naprawdę nie ma zbyt dużej widocznej różnicy pomiędzy
używając samego yuvdenoise i yuvdenoise z mpeg2enc --reduce-hf. Przydatne wartości to
pomiędzy 0.0 a 1.5. Gdzie możesz powiedzieć, że im wyższy chcesz współczynnik jakości, tym
mniej ta opcja poprawia. Przy współczynniku jakości 4, stosując -N 1.0, oszczędzasz około 1%. Jeśli ty
chcesz mieć współczynnik jakości 9 i użyj -N 1.0, możesz zaoszczędzić do 40%. Ale może oszczędzisz
mniej, to zależy od kodowanego filmu!!!
Jeśli zadajesz sobie pytanie, dlaczego nie zawsze używać wszystkich powyższych filtrów? Odpowiedzi są takie
obraz staje się miękki (utrata szczegółów), a czas kodowania wzrasta. Większość filtrów
każdy z nich wymaga mniej więcej tyle samo czasu, ile mpeg2enc potrzebuje do kodowania wideo.
Jeśli masz materiał bardzo wysokiej jakości i chcesz zachować każdy szczegół, powinieneś spróbować go użyć
z drugiej strony mpeg2enc --keep-hf│-h.
Uwaga: Uzyskana redukcja szybkości transmisji zależy od materiału i szumu
obrazy.
Inną interesującą opcją mpeg2enc jest -E│--współczynnik-elim.jednostki opcja. Ta opcja jest
domyślnie wyłączone. Jeśli to włączysz, specjalny algorytm „eliminowania współczynników jednostkowych”,
jest stosowany do zakodowanych bloków obrazu. Zasadniczo ta procedura wymusza bloki a
type, które nie niosą zbyt wielu informacji (ale wymagają wielu bitów do kodowania), aby je pominąć. A
wartość ujemna sprawdza współczynniki podstawowe (DC) i AC. Wartość dodatnia
oznacza, że badane i ewentualnie zerowane są tylko współczynniki tekstury (AC). The
zalecane wartości mieszczą się w przedziale od -20 do +20. Zazwyczaj możesz spodziewać się, że będziesz mieć 5%
zmniejszony rozmiar pliku. Stopień zmniejszenia szybkości transmisji może się znacznie różnić w zakresie
waha się od niezbyt zauważalnych do 20%.
Jeśli uważasz, że inna macierz kwantyzacji pomoże w użyciu -K│--niestandardowe-macierze-kwantowe
opcja. Możesz wypróbować własną macierz kwantyzacji lub użyć innej wbudowanej matrycy niż
domyślny. Możesz wybierać pomiędzy kvcd, tmpgenc, hi-res i własnym. Zwykle używa się -K
powoduje, że plik jest mniejszy, z wyjątkiem opcji hi-res (która powoduje, że pliki są znacznie większe).
Trudno podać dokładne wytyczne, czasami inna matryca kwantyzacji prawie oszczędza
nic, a następnym razem aż do 20%. Więcej niż 20% jest bardzo mało prawdopodobne, 10-15% jest umiarkowane
prawdopodobny jest współczynnik jakości (-q 8-10). Im wyższa jakość, tym mniej oszczędza się na jakości
współczynnik 4-6, redukcja bitrate może wynosić tylko 5%
Należy pamiętać o eliminacji współczynników jednostkowych i kwantyzacji
matrix zmniejszają przepływność przy zachowaniu tej samej jakości wizualnej. Na
w tym momencie możesz użyć mniejszego pliku, aby zwiększyć ilość wideo, która będzie potrzebna
zmieścić się na płycie lub możesz jeszcze bardziej zwiększyć jakość, obniżając
-q wartość o 1 i utwórz większy (ale wyższej jakości) plik.
Skalowanie oraz offset korekta
Podstawowe skalowanie opisano w Konwersja wideo Sekcja
Skalowanie zajmuje część obrazu i skaluje ją do większego lub mniejszego rozmiaru. The
skalowanie wykonuje yuvscaler:
lav2yuv test.eli │ yuvscaler -I UŻYJ_400x400+50+100 │ graj
Tutaj bierzemy tylko część obrazu i skalujemy go do rozmiaru oryginalnej ramki.
Ale yuvscaler zmienia również współczynnik proporcji pikseli. To znaczy, kiedy patrzysz na strumień
używając yuvplay, w naszym przykładzie wygląda to jak kwadrat. Jeśli po skalowaniu próbka (piksel)
współczynnik proporcji nie został zmieniony, wideo nie będzie wyświetlane w prawidłowych proporcjach.
Yuvscaler kompensuje to poprzez dostosowanie proporcji próbki. Jeśli masz plik z przeplotem
wideo, wysokość i HeightOffset muszą być wielokrotnością 4, jeśli wideo jest z przeplotem.
W przeciwnym razie wartości (szerokość, wysokość, przesunięcie szerokości, przesunięcie wysokości) muszą być wielokrotnością 2.
Problem, którego nie można łatwo rozwiązać za pomocą skalowania, polega na tym, że obraz nie jest wyśrodkowany
poziomy. Z jednej strony nie masz czarnych pikseli, a z drugiej masz na przykład 30.
Skalowanie jest tutaj złym rozwiązaniem. Y4mshift to idealne rozwiązanie, ponieważ może
przesuń obraz w lewo lub w prawo.
lav2yuv test.eli │ y4mshift -n 20 │ mpeg2enc -f 3 -b 4000 -q 10 -o wideo.m2v
Spowoduje to przesunięcie obrazu o 20 pikseli w prawo. Jeśli użyjesz negatywu, obraz będzie przesunięty
w lewo. Musisz użyć liczby parzystej. Wstawione piksele są ustawiane na kolor czarny.
Niektórzy mogą się zastanawiać, dlaczego obraz nie jest wyśrodkowany i wokół niego znajduje się czarna ramka
obraz podczas przeglądania nagranego materiału. Powód czarnej granicy jest już w historii
technologii telewizji CRT (Cathode Ray Tube). Historia standardu telewizyjnego jest bardzo bogata
ciekawa historia, ale ten temat jest opisany w innych (dużych) książkach.
Telewizor nie pokazuje pełnego obrazu. Część obrazu nie jest wyświetlana z powodu telewizora
ustawia overscan (czasami nawet o 10%, ale obecnie częściej wynosi 5%). Ale kiedy ty
przechwyć wideo za pomocą karty, zobaczysz cały obraz, łącznie z ramką, którą tracą telewizory
z powodu nadmiernego skanowania. Przesunięcie poziome zwykle nie stanowi problemu karty przechwytującej. To
stanowi problem, gdy film jest emitowany i nie jest dobrze zsynchronizowany z obrazem. Ten
oznacza, że skanowanie źródła nie jest dokładnie zsynchronizowane z sygnałem nośnym, ty
nie zobaczę tego w telewizji.
Rama stawka konwersja
Czy kiedykolwiek potrzebowałeś przekonwertować liczbę klatek na sekundę z PAL na NTSC lub odwrotnie? Lub
coś znacznie prostszego, jak konwersja liczby klatek na sekundę z 24 FPS na 24000:1001 dla
konwersację z szybkości klatek filmu na prawidłową liczbę klatek na sekundę w systemie NTSC.
Niż yuvfps jest twój program. Może obniżyć liczbę klatek na sekundę, usuwając klatki lub tworząc plik
wyższa liczba klatek na sekundę poprzez replikację klatek. Jeśli masz nieprawidłową liczbę klatek na sekundę w nagłówku
może jedynie zmienić nagłówek strumienia YUV i nie może modyfikować strumienia.
Ponieważ ramki są tylko replikowane (kopiowane), należy najpierw odszumić, a następnie zmienić
liczbę klatek na sekundę i skalę na ostatnim etapie. Jeśli masz źródło z przeplotem, powinieneś to zrobić
usuń przeplot przed zmianą szybkości klatek. Jeśli utworzysz większą liczbę klatek na sekundę, jest to bardzo
prawdopodobnie podczas odtwarzania będziesz mieć dziwne migotanie. Jeśli konwertujesz PAL na NTSC
(30000:1001 FPS około 29,97 FPS) liczba klatek na sekundę spadnie około 480/576
(linie NTSC/linie PAL). Jeśli obniżysz liczbę klatek na sekundę z PAL na NTSC (przy 24000:1001) lub
FILM NTSC (24FPS) szybkość transmisji będzie wynosić około (480 linii * 24 FPS) / (576 linii * 25FPS).
Jeśli zmienisz liczbę klatek na sekundę przed odszumieniem, yuvdenoise będzie miał problemy ze znalezieniem
szum w ramkach i wymagana przepustowość nieznacznie wzrosną.
Przykład
> lav2yuv wideo.eli │ yuvfps -r 30000:1001 │ yuvscaler -O CDLS │ mpeg2enc -f 4 -o
wideo_ntsc_svcd.m2v
To jest przykład konwersji wideo źródłowego na wideo NTSC działające z szybkością 30000:1001 FPS
(lub około 29,97 FPS) w rozmiarze SVCD.
Przykład
> lav2yuv wideo.eli │ juvdenoise │ yuvfps -r 24000:1001 │ yuvscaler -O ROZMIAR_720x480 │
mpeg2enc -f 3 -b 4000 -q 7 -o wideo_ntsc.m2v
Ten przykład pokazuje, jak należy używać tych narzędzi. Najpierw usuń szum, a potem zmień
liczbę klatek na sekundę i w ostatnim kroku zmień rozmiar obrazu.
Może się zdarzyć, że yuvscaler lub mpeg2enc nie wykryją prawidłowo normy telewizyjnej. Jeśli to
zdarza się, że musisz dodać opcję norm -n n/p/s do programu, który wybiera źle
standard
Jeśli wiesz, że nagłówek podaje niewłaściwą liczbę klatek na sekundę, możesz po prostu zmienić liczbę klatek na sekundę
nagłówka yuv w ten sposób:
> lav2yuv wideo.eli │ yuvfps -r 25:1 -c │ mpeg2enc -f 3 -b 4000 -q 7 -o wideo_pal.m2v
Potrzebujesz -c opcja. Aby powiedzieć yuvfps, że powinien jedynie zmienić nagłówek pliku
strumień. Z -r 25:1 podajesz yuvfps liczbę klatek na sekundę, jaką powinien zapisać w nagłówku.
W twoim przykładzie liczba klatek na sekundę w systemie PAL wynosi 25 FPS. Zawsze musisz używać formy ułamkowej.
Jeśli wiesz, że nagłówek jest nieprawidłowy i potrzebujesz innej wyjściowej szybkości transmisji bitów, możesz to zrobić
to w jednym kroku:
> lav2yuv wideo.eli │ yuvfps -s 24:1 -r 25:1 │ mpeg2enc -o wideo.m1vTranskodowanie
istniejącego MPEG-2
Do transkodowania istniejących strumieni MPEG-2 z cyfrowych kart telewizyjnych lub DVD, przy niższej szybkości transmisji danych
niż w przypadku transmisji da dobre rezultaty. Standardowy VCD 1152 kbps zazwyczaj działa
dobrze dla MPEG-1. Różnica polega na stosunku sygnału do szumu oryginału. Hałas w
materiały analogowe znacznie utrudniają kompresję.
Będziesz także musiał ręcznie dostosować przesunięcie opóźnienia dźwięku w stosunku do wideo, kiedy
multipleksowanie. Bardzo często opóźnienie około 150 ms wydaje się działać.
Musisz pobrać pakiety ac3dec i mpeg2dec. Znajdziesz je na ich stronie
strona główna: mpeg2dec ( ) i ac3dec. Do dekodowania strumieni audio mpg123 i mplayer można
być bardzo pomocny. Potrzebujesz także Soxa i Toolame.
W katalogu skryptów znajduje się plik transkodowanie mpeg skrypt, który wykonuje większość pracy.
Transkodowanie wygląda zatem następująco:
> mjpegtranskod -V -o strumień_vcd mpeg2src.mpg
-V
ustaw opcje tak, aby generowany był strumień zgodny z VCD
-o strumień_vcd
tworzony jest vcd_stream.m1v (wideo) i vcd_stream.mp2 (audio)
mpeg2src.mpg
określa strumień źródłowy
Skrypt wypisuje również coś takiego:
> SYNC 234 mSek
Aby zapewnić dźwięk, konieczne będzie dostosowanie opóźnień uruchamiania audio/wideo podczas multipleksowania
i wideo są zsynchronizowane. Dokładne opóźnienie (w milisekundach), do którego należy przejść
mplex do synchronizacji audio i wideo za pomocą „-v”” jest drukowany przez narzędzie ekstrakt_a52
oznaczony jako „SYNC”, jeśli jest uruchamiany z flagą „s”. To jest wartość skryptu mjpegtranscode
drukuje się po SYNC słowo.
Następnie musisz je zmultipleksować w ten sposób:
> multipleks -f 1 -O 234 vcd_stream.mp2 vcd_stream.m1v -o niska stawka.mpg
-f 1
Format Mux jest ustawiony na VCD
-O 234
Przesunięcie znacznika czasu wideo w ms, wygenerowane przez skrypt mjpegtranscoding, w tym przypadku ujemne
wartości są dozwolone
vcd_stream.mp2 i vcd_stream.m1v
wygenerowane pliki przez skrypt
niska stawka.mpg
strumień wyjściowy zgodny z VCD
Tutaj mamy przykład SVCD (wideo MPEG-2):
> mjpegtranskod -S -o svcd_stream mpeg2src.mpg
Musisz to zwielokrotnić za pomocą:
> multipleks -f 4 -O 234 svcd_stream.mp2 svcd_stream.m2v -o niska stawka.mpg
Problem: Czasami występują problemy z odtwarzaniem w formacie NTSC i VCD, ponieważ mogą występować filmy
nagrano w formacie 3:2 pulldown NTSC z szybkością 60 pól/s. MPeg2dec jest przeznaczony do odtwarzania
komputerach i generuje oryginalną przepływność 24 klatek na sekundę. Jeśli teraz zakodujesz wideo
Tworzony jest film z prędkością 30 klatek na sekundę. Ten film jest teraz o wiele za krótki dla zakodowanego dźwięku.
Transkodowanie można uruchomić, ale należy to zrobić ręcznie:
> mpeg2dec -s -o pgmpipe mpeg2src.mpg │ pgmtoy4m -a 59:54 -r 25:1 -i t │ mpeg2enc -I 0 -f
4 -q 9 -V 230 -p -P -o svcd_stream.m2v
Opcja -p mówi mpeg2enc, aby wygenerował flagi nagłówka dla filmu 3 fps w formacie 2:24. Może
działa również, jeśli nie dodasz flagi -p. Nie potrzebujesz flagi -p podczas transkodowania do
Format VCD, ponieważ nie jest obsługiwany w formacie MPEG1.
If ty chcieć do do każdy krok on Twój własny it będzie na temat coś lubić to
Wyodrębnianie dźwięku:
> jak test2.mpg │ ekstrakt_a52 - -s │ ac3dec -o wav -p dźwięk.wav 2>/dev/null
Jedna z pierwszych wyświetlonych linii zawiera etykietę „SYNC”, której musisz użyć później
podczas multipleksowania. 2>/dev/null przekierowuje wyjście ac3dec do /dev/null. w
następnym krokiem jest wygenerowanie pliku audio MPEG:
> jak dźwięk.wav │ mp2 enc -V -v 2 -o audio.mp2
-V
wymusza format VCD, częstotliwość próbkowania jest konwertowana z 44.1 kHz na 48 kHz
-v 2
niepotrzebne, ale jeśli go użyjesz, mp2enc poinformuje Cię, ile sekund zajmuje plik audio
już zakodowane.
-o
Określa plik wyjściowy.
jak test2.mpg │ ekstrakt_a52 - -s │ ac3dec -o wav │ Sox -t wav /dev/stdin -t wav -r 44100
/dev/stout │ niezręczność -p 2 -b 224 /dev/stdin audio.mp2
Wyjście jednego z pierwszych wierszy ponownie zawiera etykietę „SYNC”. Trzeba wykorzystać ten czas
(określane poniżej jako „wartość_SYNC”) podczas wykonywania multipleksowania.
Do tworzenia VCD użyj:
> mpeg2dec -s -o pgmpipe test2.mpg │ pgmtoy4m -a 59:54 -r 25:1 -i t │ mpeg2enc -s -o
wideo_vcd.m1v
mpeg2dec:
-s
mówi mpeg2dec, aby użył demultipleksera strumienia programu
-o pgmpipe
format wyjściowy zdjęć, odpowiedni dla pgmtoy4m
Kompleks z:
> multipleks -f 1 -O wartość_SYNC audio.mp2 wideo_vcd.m1v -o vcd_stream.mpg
-f 1
generuje strumień VCD
-O wartość_SYNC
wartość, o której mowa powyżej
Do tworzenia SVCD użyj:
> mpeg2dec -s -o mpeg2src.mpg │ pgmtoy4m -a 59:54 -r 25:1 -i t │ mpeg2enc -f 4 -q 9 -V
230 -o video_svcd.mpg
-q 9
Współczynnik jakości strumienia (strumień VBR) (domyślnie q: 12)
-V 230
Docelowy rozmiar bufora wideo w KB
-o
Plik wyjściowy
Kompleks z:
> multipleks -f 4 -b 230 audio.mp2 wideo_svcd -o svcd_stream.mpg
-f 4
wygeneruj strumień SVCD
-b 200
Określ rozmiar bufora wideo według urządzenia odtwarzającego.
W przypadku innych formatów wyjściowych wideo może to działać:
> mpeg2dec -s -o pgmpipe test2.mpg │ pgmtoy4m -a 59:54 -r 25:1 -i t │ yuvscaler -O
ROZMIAR_320x200 -O NIE_PRZEPLETEK │ mpeg2enc -o dziwne_video.m1v
Jeśli chcesz edytować strumienie MPEG, działa to również, ale w nieco inny sposób. Dla
demultipleksowania możesz użyć bbdmux z pakietu bbtools. Dzieli wideo lub
dźwięk bardzo czysto. Nie da się tego już uzyskać ze strony głównej Brenta Beylera, naprawdę można
nadal można go znaleźć, szukając go przy użyciu tych słów kluczowych ” bbtools linux -suse
-czarna skrzynka". Aktualnie można go znaleźć pod adresem:
Pierwszy bieg:
> bbdmux mojewideo.mpg
Powinieneś otrzymać coś takiego:
Znaleziono identyfikator strumienia 0xE0 = strumień wideo 0
Znaleziono identyfikator strumienia 0xC0 = strumień audio MPEG 0
Znaleziono identyfikator strumienia 0xBE = strumień dopełniający
Wyodrębnij dźwięk za pomocą:
> bbdmux mojewideo.mpg 0xC0 audio.mp1
Przekonwertuj to na wav:
> mpg123 -w audio.wav audio.m1v
Wyodrębnij wideo za pomocą:
> bbdmux mojewideo.mpg 0xE0 wideo.m1v
Konwersja wideo na strumień avi mjpeg:
> mpeg2dec -o pgmpipe wideo.m1v │ pgmtoy4m -a 59:54 -r 25:1 -i t │ juv2lav -f a -o
test.avi
Następnie dodając dźwięk do pliku avi:
> lawaddwav test.avi audio.wav final.avi
Jeśli wideo źródłowe ma już rozmiar docelowego wideo, użyj opcji -o YUV. Używanie YUVh sprawia, że
wideo o połowę mniejsze! Resztę można zrobić tak samo, jak edycję i kodowanie innych
strumienie. Jeśli masz filmy z dźwiękiem AC3, wystarczy dostosować powyższe polecenia.
Wyodrębnianie dźwięku:
> jak test2.mpg │ ekstrakt_a52 - -s │ ac3dec -o wav 2>odtw./null >dźwięk.wav
Wyodrębnij wideo i dodaj dźwięk w jednym kroku:
> mpeg2dec -s -o pgmpipe │ pgmtoy4m -a 59:54 -r 25:1 -i t │ yuvscaler -O VCD │ juv2lav -f
a -q 85 -w dźwięk.wav -o test.avi
UWAGA:Potrzebujesz dużo miejsca na dysku. 1 GB wideo ma rozmiar około 2 GB w formacie SVCD i
Oczywiście dla niektórych plików tymczasowych potrzebne jest miejsce na dysku. Konwersja wideo do formatu mjpeg również trwa
czasami. Na moim Athlonie 500 nigdy nie uzyskuję więcej niż 6-7 klatek na sekundę. Tracisz jakość
za każdym razem, gdy konwertujesz strumień na inny format! Jakość/szybkość handlu
Jeśli Twoim celem jest absolutna jakość, niewielką poprawę można osiągnąć za pomocą -4
i -2 flagi. Kontrolują one, jak bezwzględnie mpeg2enc odrzuca źle wyglądające dopasowania pomiędzy
sekcje sąsiednich klatek na wczesnych etapach wyszukiwania, z którymi pracuje
Klastry pikseli 4*4 i 2*2 zamiast pojedynczych pikseli. Ustawienie -4 1 -2 1 maksymalizuje
jakość. -4 4 -2 4 maksymalizuje prędkość. Należy pamiętać, że ponieważ kryteria statystyczne mpeg2enc
sposoby odrzucania źle wyglądających dopasowań są zwykle dość niezawodne, jeśli chodzi o wzrost/spadek
jakość jest skromna (ale zauważalna).
Zmniejszenie promienia wyszukiwania pasujących sekcji obrazów również zwiększa prędkość.
Jednakże ze względu na sposób działania algorytmu wyszukiwania promień wyszukiwania jest faktycznie zaokrąglony
do najbliższej wielokrotności 8. Ponadto w nowoczesnych procesorach prędkość uzyskiwana jest poprzez redukcję
promień poniżej 16 nie jest na tyle duży, aby zauważalna redukcja jakości była opłacalna
dla większości zastosowań.
Tworzenie Strumienie do be grał od dysk za pomocą Oprogramowanie gracze
Zwykle oprogramowanie odtwarzacza MPEG jest znacznie bardziej elastyczne niż sprzęt wbudowany w DVD i DVD
odtwarzacze VCD. Ta elastyczność pozwala na osiągnięcie znacznie lepszej kompresji
za tę samą jakość. Sztuka polega na generowaniu strumieni wideo wykorzystujących duże bufory wideo
(500 KB lub więcej) i kodowanie ze zmienną przepływnością (flaga -f / -q do mpeg2enc). Oprogramowanie
odtwarzacze często będą również poprawnie odtwarzać bardziej wydajną warstwę MPEG 3 (tak, „MP3”
formacie audio. Dobry koder MP3, taki jak lame, da wyniki porównywalne z warstwą 2 przy
224 Kb/s przy 128 Kb/s lub 160 Kb/s. SMP i kodowanie rozproszone
Kodowanie rozproszone to dość mroczna teoria dla typowej Maszyny w 2013 roku. Tak jak większość
użytkownicy mogą bezpiecznie pominąć ten punkt. Kodowanie SMP jest bardziej interesujące dla przeciętnego
komputer
Stopień, w jakim mpeg2enc próbuje podzielić pracę pomiędzy współbieżnie wykonywanymi wątkami, wynosi
kontrolowane przez opcję -M lub --multi-thread [0..32]. Optymalizuje to mpeg2enc dla
określoną liczbę procesorów. Domyślnie (-M 1) mpeg2enc działa z niewielkim
Threading: odczyt klatek odbywa się jednocześnie z kompresją. Odbywa się to w celu umożliwienia
potoki kodowania podzielone na kilka maszyn (patrz poniżej), aby działały wydajnie
bez konieczności stosowania specjalnych programów buforujących. Jeśli kodujesz na jednym procesorze
maszynie, na której jest mało pamięci RAM, może się okazać, że całkowicie wyłączysz wielowątkowość, ustawiając
-M 0 działa nieco wydajniej.
W przypadku maszyn SMP z dwoma lub więcej procesorami można przyspieszyć mpeg2enc, ustawiając
liczba jednocześnie wykonywanych wątków kodujących, które chcesz wykorzystać (np. -M 2).
Ustawienie -M 2 lub -M 3 na maszynie dwukierunkowej powinno pozwolić ci przyspieszyć kodowanie o około
80%. Wartości powyżej 3 są akceptowane, ale mają niewielki wpływ nawet na systemy z 4 procesorami.
Jeśli masz naprawdę szybką maszynę SMP (obecnie 1), taką jak podwójny Athlon MP 03 lub
coś podobnego -M 2 i filtrowanie może nie zajmować obu (lub więcej) procesorów.
Użycie bufora lub programu bfr z buforem o wielkości 10-20 MB pomaga utrzymać zajęcie obu procesorów.
Oczywiście, jeśli potok kodowania zawiera kilka etapów filtrowania, jest to prawdopodobne
możesz utrzymać zajęte dwa lub więcej procesorów jednocześnie, nawet bez użycia opcji -M. Odszumianie za pomocą
yuvdenoise lub yuvmedianfilter jest szczególnie wymagający i zużywa prawie tyle samo przetwarzania
moc kodowania MPEG.
Jeśli masz więcej niż jeden komputer, możesz także podzielić potok kodowania między komputery
przy użyciu standardowych poleceń zdalnego wykonywania powłoki „rsh” lub „rcmd”. Na przykład, jeśli ty
mam dwa komputery:
> rsz machine1 lav2yuv ”mycapture.eli │ yuvscaler -O CDLS │ juvdenoise” │ mpeg2enc -f 4 -o
mycapture.m2vi
Tutaj komputer, na którym wykonujesz polecenie, koduje MPEG, a „maszyna 1”
to maszyna, która dekoduje skalowanie i odszumianie przechwyconego wideo.
Oczywiście, aby to zadziałało, „maszyna 1” musi mieć dostęp do wideo i komputera
w którym wykonywane jest polecenie, musi być miejsce na zakodowane wideo. W praktyce tak jest
zazwyczaj warto skonfigurować sieciowe przechowywanie plików przy użyciu „NFS” lub innych pakietów, jeśli chcesz
zamierzają robić takie rzeczy. Jeśli masz trzy komputery, możesz zająć się tym etapem
co więcej, jeden komputer może wykonać dekodowanie i skalowanie, a następny może wykonać odszumianie i
trzeci mógłby wykonać kodowanie MPEG:
> rsz machine1 ”law2yuv mycapture.eli │ yuvscaler -O SVCD” │ juvdenoise │ rsz machine3
mpeg2enc -f 4 -o mycapture.m2v
UWAGA:Jak skonfigurowane jest zdalne wykonanie poleceń, tak aby dane były wysyłane bezpośrednio z
maszynę, która je produkuje, do maszyny, która je zużywa.
W praktyce, aby było to opłacalne, sieć, z której korzystasz, musi być wystarczająco szybka
uniknąć stania się wąskim gardłem. W przypadku maszyn klasy Pentium-III lub wyższej będziesz potrzebował:
Ethernet 100 Mb/s.
W przypadku naprawdę szybkich maszyn może być potrzebny przełączany Ethernet 100MB/s (lub lepszy!).Konfiguracja
rshd („Remote Shell Daemon” potrzebny do wykonania swojej pracy przez rsh i skonfigurowanie „rsh” to
wykracza poza zakres tego dokumentu, ale jest to pakiet standardowy i powinien być łatwy
zainstalowany i aktywowany w dowolnej dystrybucji Linuksa lub BSD.
Należy pamiętać, że jest to potencjalnie problem związany z bezpieczeństwem, dlatego należy zachować ostrożność na komputerach, które takie są
widoczne dla sieci zewnętrznych! Interoperacyjność
Pliki Quicktime przechwytywane za pomocą lavrec można edytować za pomocą Broadcast2000. Ale
Broadcast2000 nie jest już dostępny na heroinewarrior. mjpeg AVI przechwycone za pomocą
narzędzie do streamowania z pakietu xawtv można edytować, kompresować i odtwarzać
za pomocą oprogramowania. Odtwarzanie sprzętowe takich plików nie jest możliwe ze względu na ograniczenia w
aktualnie obsługiwany sprzęt Zoran. Można również nagrywać filmy nagrane za pomocą NuppelVideo
przetworzone za pomocą narzędzi mjpeg.
Jeśli masz komputer Macintosh (MAC) i chcesz korzystać z narzędzi mjpeg, zajrzyj tam:
Pliki MPEG utworzone przy użyciu tych narzędzi można poprawnie odtwarzać na:
dxr2 (sprzętowa karta dekodera)
xine
xfilm
MPlayer
vlc
Tylko MPEG-1: gtv
Odtwarzacz MS Media w wersji 6 i 7 oraz nowszej
Odtwarzacz DVD oparty na oprogramowaniu kilkus
Aby dowiedzieć się, co potrafi Twój odtwarzacz sprzętowy (w większości przypadków odtwarzacz DVD), spójrz na:
Wygląda na to, że odtwarzacz MS Media bardziej lubi strumienie MPEG-1, jeśli użyłeś -f 1 kiedy
multipleksowanie.
Jeśli masz jakieś problemy lub sugestie, napisz do mnie (Bernhard Praschinger): Tam
to wiele rzeczy dodanych z WSKAZÓWEK, które stworzył Andrew Stevens. Wolfganga Goellera i
Steven M. Schultz sprawdził dokument pod kątem błędów i błędów ortograficznych.
A także osobom, które pomogły mi, przekazując opisy programów i wskazówki: dzięki
Korzystaj z mjpegtools online, korzystając z usług onworks.net