[OpenBSD]

[FAQ Index] [Sekcja 12 - Pytania dotyczące poszczególnych platform i sprzętu] [Sekcja 14 - Konfiguracja Dysku]

13 - Multimedia


Spis treści


13.1 - Jak ustawić urządzenie audio?

W OpenBSD urządzeniami audio są: /dev/audio, /dev/sound, /dev/audioctl i /dev/mixer. Wprowadzenie do warstwy sterowników audio jest na tej audio(4) stronie podręcznika.

Wszystkie obsługiwane sterowniki audio są zawarte w GENERYCZNYM kernelu, więc nie trzeba dodatkowo konfigurować czy instalować sterowników. Aby poznać dodatkowe opcje dla konkretnego chipsetu który posiadasz, musisz dowiedzieć się jakim chipsetem dysponujesz. Listę obsługiwanych chipów możesz znaleźć na stronie zgodności sprzętowej dla twojej platformy. W sytuacji gdy posiadasz już działające OpenBSD, poszukaj sterownika dźwięki w wyjściu polecenia dmesg(8), i przeczytaj stronę manuala by poznać więcej informacji, jak opcje i inne szczegóły dotyczące sterownika. Przykładowe wyjście dla urządzenia audio w dmesg:

auich0 at pci0 dev 31 function 5 "Intel 82801BA AC97" rev 0x04: irq 10, ICH2 AC97 ac97: codec id 0x41445360 (Analog Devices AD1885) ac97: codec features headphone, Analog Devices Phat Stereo audio0 at auich0

Możesz przetestować twoje urządzenie audio działa poprawnie, wysyłając do niego plik audio (zazwyczaj z rozszerzeniem .au). Jeżeli nie posiadasz pliku audio, możesz także wysłać plik tekstowy lub binarny:

$ cat filename > /dev/audio
Jeżeli usłyszysz cokolwiek (jeżeli nie jest to plik audio dźwięk może nie być za dobry i może być za głośny), oznacza to że twój chipset jest wspierany przez OpenBSD oraz że został rozpoznany i skonfigurowany podczas startu.

Uwaga: Nie każdy wariant i użyteczność każdego chipsetu była testowana i odpluskwiana.

Jeżeli nie usłyszałeś żadnego dźwięku po wydaniu powyższego polecenia, jest kilka możliwości:

Zwróć uwagę, że sam fakt usłyszenia dźwięku, niekoniecznie oznacza, że wszystko funkcjonuje zgodnie z zamierzeniem. Jeżeli napotkasz problemy podczas odtwarzania dźwięku, oto dodatkowa lista rzeczy do sprawdzenia:

Aby dostosować parametry urządzeń audio, takie jak szybkość odtwarzania, możesz wykorzystać audioctl(1). Do zmian głośności i innych ustawień miksera, możesz użyć mixerctl(1). Obydwa narzędzia dostarczane są jako podstawowa część systemu.

Dla przykładu, aby ustawić głośność na lewym i prawym kanale na 200, mógłbyś, przykładowo (zobacz Notatkę 2 poniżej), wydać

$ mixerctl outputs.master=200,200 outputs.master: 255,255 -> 207,207
Zauważ że wartość ustawiła się na 207. Powodem tego jest, że moja karta dźwiękowa posiada kodek AC'97, który używa tylko 5 bitów do kontroli głośności, dostarczając tylko 32 możliwe poziomu. Oczywiście inne urządzenia mogą mieć inną rozdzielczość.

Aby włączyć (unmute) główny kanał, mógłbyś wykonać

$ mixerctl outputs.master.mute=off outputs.master.mute: on -> off

Aby uczynić twoje zmiany trwałymi będziesz musiał wyedytować /etc/mixerctl.conf, dla przykładu:

$ cat /etc/mixerctl.conf outputs.master=200,200 outputs.master.mute=off outputs.headphones=160,160 outputs.headphones.mute=off
Notatka 1: Możesz zobaczyć więcej wyjść niż jest na twojej karcie dźwiękowej na płycie głównej. Dzieje się tak dlatego, że chipsety dźwięki są generalnie tańsze w instalacji na płycie niż wyprowadzenia wykorzystywane do podłączania wyjść, zatem nie każda opcja w każdym urządzeniu audio zostaje wyprowadzona na świat zewnętrzny.

Notatka 2: Wyjścia twojego urządzenia dźwiękowego mogą być oznaczane inaczej. Dla przykładu, możesz nie posiadać "outputs.master" jak w powyższym przykładzie, zamiast tego możesz posiadać "outputs.output", lub coś jeszcze innego. To zależy od sterownika i możesz bardzo łatwo znaleźć właściwą nazwę korzystając z

$ mixerctl -a

13.2 - Odtwarzanie różnych rodzajów audio

Dźwięk cyfrowy

Bezstratne formaty dźwięków (AU, PCM, WAV, FLAC, TTA)

Do odtwarzania niektórych bezstratnych formatów dźwięków nie potrzeba specjalnych programów, jeśli zawierają nieskompresowane cyfrowe próbki dźwięków w postaci ciągów bajtów. Te formaty to między innymi Sun audio (AU), surowe (raw) pliki PCM (bez nagłówków) i RIFF WAV.

Aby odtworzyć taki plik, trzeba znać jego podstawowe parametry: sposób kodowania, liczba kanałów, częstotliwość próbkowania, liczba bitów na próbkę. Parametry te pokazuje program file(1)

$ file music.au music.au: Sun/NeXT audio data: 16-bit linear PCM, stereo, 44100 Hz
$ file music.wav music.wav: Microsoft RIFF, WAVE audio data, 16 bit, stereo 44100 Hz
O tych przykładowych plikach trzeba jeszcze wiedzieć, że ich kolejność zapisu bajtów to little-endian, zaś sposób kwantyzacji jest liniowy ze znakiem. Można to sprawdzić programem hexdump(1). Nie jest to możliwe w przypadku plików bez nagłówków (raw). Parametry należy ustawić programem audioctl(1).
play.encoding=slinear_le play.rate=44100 play.channels=2 play.precision=16
Następnie przekierować plik dźwiękowy do urządzenia sound:
$ cat music.au > /dev/sound
Jeśli zostały ustawione odpowiednie parametry, spodziewany dźwięk będzie słyszalny.

Uwaga: Aby parametry ustawione przez audioctl pozostawały niezmienione, należy używać /dev/sound, a nie /dev/audio.

Są też inne programy, dla przykładu aucat(1), i audio/waveplay w pakietach i portach. Popularne programy typu XMMS również odtwarzają te pliki, a także pliki dźwiękowe w innych formatach.

Są też formaty dźwięków używające kompresji bezstratnej. Przykładami takich formatów są Free Lossless Audio Codec (FLAC) i TTA. Implementacja FLACa została sportowana dla OpenBSD, znajduje się w audio/flac w pakietach i portach.

Formaty dźwięku używające kompresji stratnej (Ogg Vorbis, MP3, WMA, AAC)

Metody kompresji stratnej są często używane do zapisu dźwięków innych plików z mediami. Podczas tego procesu część danych jest tracona, ale w ten sposób Istotą tej kompresji jest odrzucenie części danych podczas kompresji, lecz w taki sposób by skompresowany rezultat był wciąż bardzo użyteczny i posiadał wystarczającą jakość do odtwarzania. Zaletą tego typu technik z wysokim współczynnikiem kompresji, jest ograniczenie niezbędnej przestrzeni dyskowej oraz wymagań przepustowości.

Dobrym przykładem jest wolny, otwarty i nieopatentowany format Ogg Vorbis. Aby odtwarzać pliki Ogg Vorbis, możesz skorzystać z narzędzia ogg123, które znajduje się w pakiecie audio/vorbis-tools. Przykładowo:

$ ogg123 music.ogg Audio Device: Sun audio driver output Playing: music.ogg Ogg Vorbis stream: 2 channel, 44100 Hz Time: 00:02.95 [02:21.45] of 02:24.40 (133.1 kbps) Output Buffer 87.5%
Oczywiście wtyczki dla formatu Ogg Vorbis istnieją dla każdego innego oprogramowania dźwiękowego.

Innym przykładem jest bardzo popularny kodowanie MPEG-1 Audio Layer 3 (MP3), które jest, bądź co bądź, objęte zagadnieniami licencyjnymi i patentowymi. Wiele narzędzi odtwarza pliki MP3, po prostu zobacz zawartość sekcji audio w systemie pakietów i portów i wybierz taki jaki ci pasuje.

Co z prawnie zastrzeżonym formatem Windows Media Audio (WMA)? Te pliki mogą być odtwarzane przy pomocy x11/mplayer który korzysta miedzy innymi z FFmpeg.

Dobrym punktem wyjścia by dowiedzieć się więcej o różnych formatach audio jest artykuł w Wikipedii: Audio file formats.

Kopiowanie z ustaloną szybkością urządzenia audio

Niektóre urządzenia potrafią odtworzyć tylko ustalone szybkości próbek. Przykładowo, możesz usiłować odtworzyć plik z 22050 Hz przez kartę dźwiękową której chip został zablokowany na 48000 Hz.

Istnieją narzędzia w kolekcji portów i pakietów pozwalające ominąć ten problem poprzez przekonwertowanie tempa. Przykładowo, x11/mplayer posiada opcję "-srate" pozwalającą na określenie porządanej szybkości na wyjściu. Będziesz mógł ustawić szybkość z jakiej korzysta twoja karta dźwiękowa. W KDE artsd i niektóre gry oferują podobne opcje. Przeczytaj dokumentacje dotyczącą określonej aplikacji i dowiedz się czy wspiera resampling.

Dźwięki syntetyczne

MIDI

Protokół Musical Instrument Digital Interface (MIDI) dostarcza standaryzowanych oraz wydajnych metod by przedstawić wykonane muzycznie informacje jako elektroniczne dane. Pliki MIDI mogą być niezwykle małe w porównaniu z przykładowymi plikami audio, ponieważ zawierają tylko instrukcje niezbędne syntetyzerowi do odtworzenia dźwięku.

Dwie powszechnie stosowane technologie w muzyce syntetycznej to:

Większość niezbędnych informacji o MIDI w OpenBSD możesz znaleźć na stronie manuala midi(4).

Podstawowym narzędziem do obsługi standardu MIDI jest midiplay(1). Aby uzyskać listę urządzeń MIDI dostępnych w twoim systemie, spróbuj:

$ midiplay -l 0: SB MIDI UART 1: SB Yamaha OPL3 2: PC speaker
W tym przykładzie, widzimy wyjście UART do którego można podłączyć zewnętrzne urządzenie MIDI, syntezator Yamaha OPL3 FM, oraz stary prosty głośnik.

Uwaga: Nie wszystkie karty dźwiękowe posiadają wbudowany syntezator MIDI, zatem możesz zobaczyć tylko wyjście UART oraz głośnik PC.

Odtwarzanie standardowego pliku MIDI, w tym przypadku przez syntezator OPL3 jest tak proste jak:

$ midiplay -d 1 file.mid
Zauważ że określiliśmy urządzenie MIDI numer 1 jako parametr ponieważ urządzenie numer 0 jest wykorzystywane domyślnie.

Więcej informacji: Tutorial on MIDI and Music Synthesis

MOD

Moduł Soundtracker jest binarnym formatem mieszającym próbki audio w ustalonej kolejności, pozwalając odtwarzać całkiem długie fragmenty muzyki cyfrowej w rozsądnie dobrej jakości.

Najprostszą metodą odtworzenia ulubionych plików MOD w OpenBSD jest prawdopodobnie skorzystanie z XMMS-a, dostępnego poprzez porty i pakiety. Powinieneś zainstalować subpakiet -mikmod pozwalający XMMS-owi na korzystanie z biblioteki MikMod, obsługującej formaty MOD, S3M oraz XM.

Powinieneś także znaleźć szereg tak zwanych "traskerów" w sekcji audio kolekcji pakietów i portów, np. tracker, soundtracker. Dzięki nim nie tylko będziesz mógł odtwarzać ale także generować swoje własne moduły. Zauważmy jednak, że nie każdy format trackera jest obsługiwany przez narzędzia w drzewie portów. Zawsze mile widziane jest dostarczenie portu obsługującego twój ulubiony format trackera.

13.3 - Jak odtwarzać audio CD w OpenBSD?

Chcąc odtwarzać płyty CD audio korzystając z analogowego wyjścia w twoim napędzie CD-ROM, możesz

Miłym narzędziem pracującym w linii poleceń jest cdio(1), włączone do systemu bazowego. Wywołane bez parametrów przejdzie w tryb interaktywny. Jeżeli chcesz odtworzyć płytę CD, po prostu wpisz

$ cdio play

Domyślnie spowoduje to czytanie pierwszego napędu CD-ROM, cd0. Zauważ, że użytkownik uruchamiający cdio musi mieć uprawnienia do czytania z urządzenia CD-ROM (tj. /dev/rcd0c). Jako że to urządzenie domyślnie może być tylko przez root'a lub należących do grupy operator, możesz dodać użytkownika do tej grupy poprzez modyfikację wpisów w /etc/group. Możesz także zmienić uprawnienia dla tego urządzenia, wedle potrzeb.

Zwróć uwagę, że możesz potrzebować włączyć dźwięk na wejściu CD miksera. Podobnie jak w przypadku wyjść, właściwa nazwa tego wejścia może się różnić pomiędzy różnymi systemami, będziesz jednak korzystał z polecenia podobnego do tego poniżej:

$ mixerctl inputs.cd.mute=off

Jeżeli preferujesz piękne GUI, jest mnóstwo opartych o X11 odtwarzaczy CD w kolekcji pakietów i portów. Po prostu zobacz do sekcji audio.

13.4 - Czy mogę użyć OpenBSD do nagrywania dźwięków?

Tak, możesz to zrobić korzystając z /dev/sound lub /dev/audio jako urządzeń wejściowych.

Najpierw, ustaw poprawne parametry nagrywania przy pomocy audioctl(1), np.

record.encoding=mulaw record.rate=8000 record.channels=1 record.precision=8
Tutaj korzystam z nierównomiernego kwantowania w algorytmie mu-law, z jednym kanałem i próbkowaniem 8000 Hz oraz 8-bitami na próbkę. Algorytmy mu-law i A-law są szczególnie użyteczne podczas cyfrowego nagrywania mowy, ponieważ osiągają wyższą wydajność kodowania. Oznacza to, że jakość pobranej próbki mowy, będzie lepsza dla ustalonej liczby bitów na próbkę, lub więcej bitów będzie wymagane dla ustalonej jakości.

Jeżeli zdecydujesz zaadoptować powyższe wartości (tylko te!), możesz użyć urządzenie /dev/audio które używa ich domyślnie, zatem nie będziesz musiał ustawiać ich bezpośrednio.

Następnie upewnij się, że wybrałeś właściwe urządzenie do nagrania oraz że źródło nie jest wyciszone. Możesz ustawić wymagane parametry korzystając z mixerctl(1). Dla przykładu:

inputs.mic.mute=on inputs.mic.preamp=on inputs.mic.source=mic0 record.source=mic record.volume=255,255 record.volume.mute=off record.mic=0 record.mic.mute=off
W tym przykładzie, nagrywałem z mikrofonu. Włączone zostało wstępne wzmocnienie, inaczej nagrany dźwięk może być dość cichy.

Do aktualnego zapisu, po prostu wykorzystaj cat(1) lub dd(1):

$ dd if=/dev/audio of=myvoice.raw
Naciśnij [CTRL]-C by zakończyć nagrywanie. Wyjście jest surową sekwencją bajtów. Dźwięk ten może być odtworzony jak wyjaśniono w Odtwarzanie różnych rodzajów audio. Dla szybkiego testu, zakładając że parametry audio są ustawione właściwie:
$ dd if=myvoice.raw of=/dev/audio

Jeszcze raz, jeżeli ustawiłeś inne parametry kodowania, powinieneś korzystać z urządzenia /dev/sound. Inny przykład parametrów kodeka:

record.encoding=slinear_le record.rate=22050 record.channels=2 record.precision=8
Spowoduje to nagraniem PCM z oznaczonym liniowym (uniform) kwantowaniem, zapisanym w uporządkowanym little-endian, z próbkowaniem 22050 Hz, stereo, oraz 8-bitowym odwzorowaniem pojedynczej próbki (2^8 = 256 poziomów kwantowania).

Uwaga: Prawdopodobnie będziesz chciał skonwertować ten zapis w surowym (headerless) formacie na bardziej użyteczny w dalszym procesie. Przeczytaj FAQ 13 - Konwertowanie.

13.5 - Powiedz mi o kodowaniu Ogg Vorbis i MP3?

O formatach tych była wzmianka w Odtwarzaniu różnych formatów dźwięku. W tej sekcji podamy krótkie wprowadzenie o kodowaniu tych plików. Jeżeli jesteś zainteresowany jak działają te kodeki audio, więcej do przeczytania znajdziesz poprzez artykuły Wikipedii o Vorbis oraz MP3.

Ogg Vorbis

Kodowanie raw, WAV lub AIFF do Ogg Vorbis może być wykonane przy pomocy narzędzia oggenc, zawartego w pakiecieaudio/vorbis-tools, który jest dostępny w OpenBSD poprzez system portów i pakietów.

Powiedzmy że posiadasz kilka plików WAV, gotowych do kodowania, przykładowo twój ulubiony album, zgrany właśnie z CD. Aby przekodować te pliki korzystając w przybliżeniu z 192 kbps, możesz wykorzystać polecenie podobne do

$ oggenc *.wav -b 192
Po skończeniu, otrzymasz zestaw plików .ogg w aktualnym katalogu. Więcej rozbudowanych przykładów, podobnie jak opcji kodowania, znajdziesz na stronie manuala do oggenc.

MPEG-1 Audio Layer 3 (MP3)

Jeżeli z jakiegoś powodu chcesz korzystać z formatu MP3, możesz użyć edukacyjnego narzędzia "Lame ain't an MP3 encoder" (LAME), do nauki o kodowaniu MP3. Lame jest włączone do drzewa portów OpenBSD. Z uwagi na patenty jakimi objęte jest MP3, nie znajdziesz tego pakietu na oficjalnych CD.

Poniższy, prosty, przykład kodowania pliku WAV z szybkością 192kbps:

$ lame -b 192 track01.wav track01.mp3
Po więcej opcji i szczegółów, zobacz stronę manuala dostarczaną wraz z lame.

13.6 - Jak mogę odtwarzać płyty video DVD w OpenBSD?

OpenBSD wspiera media DVD poprzez system plików ISO 9660, który jest także wykorzystywany w CD-ROM'ach, a także, od wersji OpenBSD 3.8, poprzez nowszy system plików Universal Disk Format (UDF) zakładany na niektórych płytach DVD. Jakkolwiek, prawie wszystkie dyski DVD-Video oraz DVD-ROM korzystają z formaty mostowego UDF, będącego kombinacją DVD MicroUDF (podsystem UDF 1.02) oraz ISO 9660. Ten pomost zapewnia zgodność wstecz.

Ponieważ większość komputerów z napędami DVD-ROM korzysta ze sprzętowego dekodowania, zalecane jest posiadać przynajmniej procesor Pentium II 350-MHz lub równoważny by otrzymać dobrą jakość odtwarzania.

Niektóre popularne odtwarzacze, obsługujące odtwarzanie DVD, zostały sportowane do OpenBSD. Na przykład ogle, mplayer, xine, i kaffeine. Prosimy przeczytaj instrukcje instalacyjne dostarczane z tymi pakietami, ponieważ narzędzia te mogą wymagać późniejszej konfiguracji. W tych programach, możliwe jest odtwarzanie DVD bezpośrednio z dostępnego urządzenia raw. Oczywiście jest także możliwe wcześniejsze podmontowanie DVD korzystając z mount_cd9660(8), oraz odtworzenie plików na tym lub innym zamontowanym systemie plików.

Uwagi:

13.7 - Jak wypalać płyty CD i DVD?

13.7.1 - Wprowadzenie i podstawowe ustawienia

Upewnij się, że twoja nagrywarka CD/DVD została rozpoznana i skonfigurowana przez jądro. Obsługiwana jest większość urządzeń SCSI. Urządzenia IDE/ATAPI oraz USB są obsługiwane poprzez emulację SCSI. Łatwo znajdziesz twoje urządzenie w wydruku z programu dmesg(8). Szukaj wierszy zaczynających się od "cd", dla przykładu
cd0 at scsibus0 targ 0 lun 0: <TOSHIBA, CD-ROM XM-5702B, 2826> SCSI0 5/cdrom removable cd1 at scsibus1 targ 4 lun 0: <PLEXTOR, CD-R PX-R412C, 1.04> SCSI2 5/cdrom removable

Ale cdrecord -scanbus nie działa!

Zgadza się. OpenBSD używa innej przestrzeni nazw urządzeń niż system operacyjny dla którego został napisany program cdrecord. Dmesg powinien wypisać wszystkie skonfigurowane urządzenia. Wszystkie urządzenia powinny być wypisane w wyjściu dmesg, jak wspomniano powyżej. Informacje których oczekujesz są właśnie tam.

Error: mount_cd9660: /dev/cd2c on /mnt/cdrom: No such file or directory

Domyślnie instalator OpenBSD tworzy tylko dwa węzły dla urządzeń cd, cd0 and cd1. Aby zacząć korzystać z cd2 musisz utworzyć konieczny węzeł urządzenia. Zalecane jest użycie do tego skryptu MAKEDEV(8) (wybierając właściwą platformę):
# cd /dev # ./MAKEDEV cd2
W ten sposób będziemy mieli dostęp do nagrywarki CD/DVD poprzez urządzenie znakowe raw, nie urządzenie blokowe.

Sprawdzanie działania nagrywarki CD/DVD

Zalecane jest sprawdzenie czy twoja nagrywarka CD/DVD działa poprawnie. W tym przykładzie, korzystał będę z nagrywarki CD/DVD na USB 2.0:
cd2 at scsibus2 targ 1 lun 0: <LITE-ON, DVDRW LDW-851S, GS0C> SCSI0 5/cdrom removable
Spróbuj jej użyć podmontowując CD/DVD. Jeżeli chcesz możesz także sprawdzić szybkość transferu podczas kopiowania danych na twardy dysk. Polecenie time(1) będzie bardzo dobrym pomocnikiem.

Jeżeli coś pójdzie źle i otrzymasz błędy podczas tej fazy, rozsądne jest rozwiązać ten problem i nie uruchamiać jeszcze zapisu CD/DVD.

Chcę teraz zapisywać na CD! Możemy przejść z tym dalej?

Zanim to zrobimy, dobrym pomysłem jest zapamiętanie kilku porad:

13.7.2 - Nagrywanie CD

Tworzenie CD z danymi

Najpierw, będziesz musiał stworzyć system plików ISO 9660 który umieścisz na CD-ROMie. Możesz to zrobić korzystając z narzędzia mkhybrid(8), dostarczanego z bazowym systemem, lub korzystając z mkisofs, dostarczanego w pakiecie cdrtools, który może się okazać bardziej użyteczny z dużymi drzewami plików. W poniższym przykładzie korzystamy z mkhybrid, chociaż korzystanie z mkisofs jest bardzo podobne.

Jako przykład użycia, powiedzmy że chcę zachować źródła kerneli OpenBSD w obrazie ISO 9660:

$ mkhybrid -R -o sys.iso /usr/src/sys Using ALTQ_RMC.000;1 for /usr/src/sys/altq/altq_rmclass_debug.h (altq_rmclass.h) ... Using XFS_DEV-.000;1 for /usr/src/sys/xfs/xfs_dev-common.c (xfs_dev-bsd.c) 12.06% done, estimate finish Sun Mar 27 21:18:47 2005 24.09% done, estimate finish Sun Mar 27 21:18:43 2005 ... 84.32% done, estimate finish Sun Mar 27 21:18:38 2005 96.37% done, estimate finish Sun Mar 27 21:18:38 2005 Total translation table size: 0 Total rockridge attributes bytes: 0 Total directory bytes: 1822720 Path table size(bytes): 10674 Max brk space used 469000 41508 extents written (81 Mb)

Opcja -R mówi mkhybrid by utworzył rozszerzenie Rock Ridge w tworzonym obrazie. Rock Ridge Interchange Protocol został stworzony do obsługi POSIX-owej semantyki systemu plików w systemie ISO 9660, takich jak dłuższe nazwy plików, prawa własności, uprawnienia, dowiązania plików, miękkie dowiązania, węzły urządzeń, głębokie struktury plików (więcej niż 8 poziomów podkatalogów), itd.

Jeżeli chcesz by długie nazwy na twojej płycie CD-ROM były czytane pod systemami Windows lub DOS, powinieneś ododać flagę -J by włączyć obsługę rozszerzeń Joliet w twoim obrazie ISO 9660.

Po utworzeniu systemu plików, możesz go zweryfikować montując utworzony obraz ISO 9660. Jeżeli wszystko jest dobrze, jesteś gotów by wypalić CD-R(W). Najszybszą metodą pozwalającą na wykonanie tego zadania jest skorzystanie z programu cdio(1)

Jeżeli korzystasz z mediów jednokrotnego zapisu jak CD-RW musisz wymazać zawartość płyty zanim jej użyjesz.

# cdio -f cd1c blank
Jesteś teraz gotowy do zapisu obrazu utworzonego w powyższym przykładzie na czystym CD-R(W). Możesz użyć polecenia podobnego do:
# cdio -f cd1c tao sys.iso
Z powyżej podanymi opcjami, prosimy cdio by użył drugiego urządzenia CD-ROM jako nagrywarki CD.

Chcąc sprawdzić czy CD-ROM został nagrany poprawnie, możesz go zamontować i sprawdzić czy wszystko na nim jest. Montując system plików, powinieneś skorzystać z urządzenia blokowego dla napędu CD-ROM, który w tym wypadku pozostaje wciąż w nagrywarce CD:

# mount /dev/cd1c /mnt/cdrom

Tworzenie CD audio

Chcąc wypalić płytę audio CD, możesz ponownie użyć cdio(1) z opcją tao -a.

Jako przykład, utworzymy kopię zapasową jednej z moich płyt CD z muzyką. Wymaga to wykonania dwóch kroków:

  1. Zgrania ścieżek audio z oryginalnego CD. Przykładowo:
    # cdio -f cd1c cdrip
    Polecenie to wyciągnie serię plików WAV z twojego drugiego napędu CD-ROM na dysk.
  2. Zapisania ścieżek audio na czystym CD Przykładowo:
    # cdio -f cd1c tao -a *.wav

13.7.3 - Zapis płyt DVD

Powinieneś wiedzieć kilka ważnych rzeczy o DVD zanim zaczniesz nagrywać swoje własne płyty DVD.

Ważne uwagi:

Różne formaty DVD

Istnieje kilka różnych formatów DVD. Powszechnie używane są DVD-R, DVD-RW, DVD+R, oraz DVD+RW (R oznacza zapisywalny raz, RW oznacza możliwość ponownego zapisu kilka tysięcy razy). Są to standardy mocno ze sobą rywalizujące.

Zupełnie inny format DVD-RAM, który został opracowany głównie jako napęd danych i zawiera zaawansowane funkcje zapisu pakietowego, pozwala na wykorzystanie go jako pewnego rodzaju optycznego dysku twardego. DVD-RAM nie jest zalecany do użytku video, ponieważ video jest zapisywane na dyski w formacie niekompatybilnym z normalnymi odtwarzaczami DVD.

Ważną rzeczą jest by korzystać z mediów które pasują do twojej nagrywarki DVD. Jeśli oczekujesz zgodności z innymi odtwarzaczami DVD, uważaj na to co robisz i upewnij się że przeczytałeś tą sekcję w DVD FAQ.

Szybkość zapisu DVD

Może okazać się wartym uwagi, że szybkości określające DVD różnią się do szybkości określających CD-ROM. Poniższa tabela pokazuje pewien przegląd:

Prędkość odczyt/zapis DVD Szybkość transferu (MB/s) Odpowiednik prędkości odczyt/zapis w CD-R(W)
1x 1.32 9x
2x 2.64 18x
4x 5.28 36x
8x 10.57 72x

Jak możemy zobaczyć w powyższej tabeli, transfery są relatywnie wysokie, zatem powinieneś sprawdzić czy twoja szyna (SCSI, (E)IDE/ATAPI, USB) jest wystarczająco wydajna by obsłużyć takie obciążenie. Szczególnie w przypadku USB 1.0 oraz 1.1 które pracują z wolniejszymi transferami, odpowiednio 1.5 Mbit/s oraz 12Mbit/s. Oznacza to, że USB 1.0 posiada maksymalna przepustowość 178.8 kByte/s, natomiast USB 1.1 posiada maksymalna przepustowość 1.43 MB/s. USB 2.0 jest znacznie szybsze: 480 Mbit/s lub 57.2 MB/s. Generalnie, prędkość szyny SCSI lub (E)IDE/ATAPI powinna być wystarczająca.

Zapis DVD

Generalnie, proces jest bardzo podobny do zapisu CD-R(W). Jednakże oprogramowanie jest inne. W tej chwili najlepszą opcją jest growisofs z pakietu sysutils/dvd+rw-tools. Narzędzie to zapisuje obrazy ISO 9660 na medium DVD. W dvd+rw-tools obsługiwane są wszystkie formaty DVD.

W przypadku gdybyś chciał dowiedzieć się więcej o medium w twojej nagrywarce DVD (dla przykładu, jeśli straciłeś etykietę z pudełka, lub jesteś podobnie jak ja mało zorganizowany), możesz użyć dvd+rw-mediainfo. Są dwie opcje w zapisie DVD:

Utworzyłem wstępny obraz ISO 9660 z modułów CVS OpenBSD (src, XF4, ports oraz www) znajdujący się w katalogu /cvs na moim dysku. Użyłem poniższego polecenia, które wyglada podobnie jak wykorzystane przeze mnie do tworzenia obrazu DC-ROM.

$ mkisofs -R -o cvs.iso /cvs
Jeżeli chcesz sprawdź system plików ISO 9660 poprzez podmontowanie obrazu. Aby zapisać ten obraz (około 2GB) na czystym nośniku DVD, możesz użyć:
# growisofs -dvd-compat -Z /dev/rcd2c=cvs.iso Executing 'builtin_dd if=cvs.iso of=/dev/rcd2c obs=32k seek=0' /dev/rcd2c: pre-formatting blank DVD+RW... /dev/rcd2c: "Current Write Speed" is 4.1x1385KBps. 23822336/1545832448 ( 1.5%) @3.9x, remaining 5:19 42172416/1545832448 ( 2.7%) @3.9x, remaining 5:20 60522496/1545832448 ( 3.9%) @3.9x, remaining 4:54 ... 1504706560/1545832448 (97.3%) @3.9x, remaining 0:07 1523318784/1545832448 (98.5%) @3.9x, remaining 0:04 1541898240/1545832448 (99.7%) @3.9x, remaining 0:00 /dev/rcd2c: flushing cache /dev/rcd2c: writing lead-out /dev/rcd2c: reloading tray
Opcja -Z przekazuje growisofs by zapisał sesję inicjalizacyjną na urządzeniu, co w moim przypadku oznacza moją nagrywarkę DVD, podłączoną do cd2. Flaga -dvd-compat zamyka dysk, co oznacza, że żadna nowa sesja nie może być później dodana. To powinno zapewnić lepszą zgodność z odtwarzaczami video DVD oraz niektórymi starszymi jednostkami DVD-ROM.

Zauważ jak growisofs określa prędkość zapisu, w tym przypadku 3.9x DVD, czyli tyle ile moglibyśmy oczekiwać od kombinacji medium i nagrywarki, jak pokazał dvd+rw-mediainfo.

Jeżeli nie powiadasz wystarczającej ilości miejsca na dysku by przechować obraz ISO 9660, możesz zapisać dane bezpośrednio na DVD. Najpierw spróbujmy zrobić test na sucho, symulujący tworzenie systemu plików.

# growisofs -dry-run -Z /dev/rcd2c -R /cvs
Gdy to się powiedzie, po prostu opuść opcję -dry-run i zacznij zapis DVD.
# growisofs -Z /dev/rcd2c -R /cvs

Istnieje możliwość by dodać dane do istniejącego DVD, korzystając z opcji -M, która włącza nową sesję do już istniejącej:

# growisofs -M /dev/rcd2c -R /mydata
Po więcej informacji o growisofs, zobacz się do strony manuala.

Gdy skończyłeś zapis DVD, zamontuj go i zobacz czy wszystko czego oczekiwałeś w rzeczywistości na nim się znajduje.

Dlaczego nie uzyskuję takiej prędkości zapisu jakiej oczekuję?

Zamiast pokazanego powyżej przykładu, mógłbyś zobaczyć coś takiego:
4784128/1545832448 ( 0.3%) @0.7x, remaining 26:50 7929856/1545832448 ( 0.5%) @0.7x, remaining 29:05 14123008/1545832448 ( 0.9%) @0.7x, remaining 27:06 ...
co jest znacznie wolniejsze. Oznacza to ze w jakiś sposób nie posiadasz wystarczającej przepustowości na szynie ba której podpięta jest nagrywarka DVD. W tym przypadku, nagrywarka USB DVD została podpięta do komputera ze sterownikiem ehci(4), używanym przez kontrolery USB 2.0, nie zainicjowanym poprawnie. Jak zwykle, prosimy o dostarczanie łatek i wyników testów. Nagrywarka DVD skorzystała z wolniejszego interfejsu USB 1.1, co pociąga za sobą ograniczenie przepustowości. Istotnie, USB 1.1 jest ograniczone do 12 Mbit/s, co oznacza 1.43 MB/s lub 1.08x w terminologii prędkości DVD. Nagrywarka DVD zmniejszyła tempo, by zredukować ryzyko opróżnienia bufora.

13.8 - Ale ja chce moje pliki w formacie FOO.

Konwertowanie pomiędzy różnymi formatami audio

Powiedzmy że chcemy przeprowadzić nagranie jak to opisano w FAQ 13 - Nagrywanie audio. To nagranie będzie przechowywane w surowym formacie. Może być pomocne konwertowanie go, ponieważ format raw nie zawiera nagłówków oraz wymagane będzie podanie parametrów nagrania przy każdym odtworzeniu tego pliku.

Jednym z narzędzi konwertujących dźwięk jest audio/sox, dostępny przez porty i pakiety. sox obsługuje AIFF, AU, MP3, Ogg Vorbis, RIFF WAV oraz raw, podobnie jak niektóre bardziej egzotyczne formaty audio. Poniżej - przykład konwersji naszego nagrania to formatu RIFF.

$ sox -U -c 1 -r 8000 -b myvoice.raw myvoice.wav
Zauważ, że podane parametry odpowiadają parametrom nagrania ustawionym przed nagraniem. To tylko przykład. Do konwersji audio można wykorzystać więcej bibliotek oraz oprogramowania.

Uwaga: Nie jest zalecane konwertowanie pomiędzy stratymi formatami. Przykładowo, kodowania MP3 oraz Vorbis odrzucają inne części oryginalnego nagrania. Zatem, konwertując plik MP3 do formatu Vorbis, rezultat będzie prawdopodobnie gorszy niż oryginalny MP3.

Konwertowanie pomiędzy różnymi formatami video

Ważne jest by widzieć bożnice pomiędzy W OpenBSD wsparcie dla MPEG oraz AVI jest obecnie prawie dojrzały Nie istnieją narzędzia w drzewie portów które pozwalają na tworzenie strumieni MP4.

Dwa popularne narzędzia to multimedia/transcode oraz mencoder (część x11/mplayer). Używają lub potrafią używać biblioteki libavcodec jako część portu graphics/ffmpeg, który generuje wyjście w dobrej jakości. Możesz także, oczywiście, użyć ffmpeg bezpośrednio. Powinno być także możliwe wykorzystanie kodeka XciD w multimedia/xvidcore.

Dokumentacja która jest dostarczana z tymi paczkami, w postaci manuali lub stron HTML w /usr/local/share/doc, zawiera mnóstwo przykładów, zatem jest WYSOCE zalecane przeczytanie tych dokumentów.

13.9 - Czy można odtwarzać strumieniowe audio/video w OpenBSD?

Tak, można. Wiele strumieni audio i video będzie działało dobrze, na ograniczonej liczbie platform. Na kilku z nich nie.

Nie oznacza to pełnej, nadmiernie szczegółowej odpowiedzi na posiadanie każdego możliwego format strumieniowego działającego na każdej architekturze. Możesz dowiedzieć się więcej na temat mediów strumieniowych zanim zaczniesz z nich korzystać. Minimalnie przestarzałym, lecz wciąż dobrym punktem wyjścia jest rozdział o mediach strumieniowych z książki wydawnictwa O'Reilly zatytułowanej Designing Web Audio.

Pierwszą rzeczą wymagającą zrozumienia jest, że istnieje wiele różnych protokołów strumieniowych. Protokół strumieniowy określa jak strumienie będą wysyłane przez sieć. Zostały zaprojektowane by efektywnie wysyłać dźwięk/obraz przez internet w czasie rzeczywistym. Przeważnie, protokół ten jest protokołem aplikacji (warstwa 7), który może korzystać z protokołu transmisyjnego (warstwa 4) UDP lub TCP. User Datagram Protocol (UDP) jest dobrze dostosowany do tego typu aplikacji, ponieważ nie wymaga retransmisji pakietów lub innych pakietów kontrolnych. Opracowano wiele specjalistycznych lecz prawnie chronionych protokołów, np. Microsoft Media Services (MMS) czy też Real Time Streaming Protocol (RTSP). Jak zobaczymy, HTTP (korzystający z TCP) czasem jest również wykorzystywany, nawet jeśli nie pozwala obsługiwać strumieni z jednostajnym bitrate jak w UDP, RTSP czy MMS.

Dalej, mamy format strumienia, określający jak dźwięk/obraz będą zorganizowane i będą odtwarzane. Najczęściej jest to MP3, Real Audio (RA, RM) oraz Windows Media (ASF), wszystkie prawnie chronione. Sporadycznie spotyka się kodowanie w formacie Ogg Vorbis.

Jako przykład, wyjaśnimy w kilku krokach jak słuchać Radio 1, jednej z publicznych w Belgii rozgłośni radiowych. Wbudowywane w przeglądarki wtyczki nie są dostępne dla OpenBSD, zatem opowieść nie jest tak prosta jak "kliknij i graj".

Strumienie Windows Media (ASF) będą często działały, chociaż zawierają dane w formacie obsługiwanym tylko poprzez port graphics/win32-codecs, działający tylko na i386 ('pkg_info win32-codecs' powie ci które kodeki). Niektóre strumienie Real Audio mogą być odtworzone na i386 korzystając z mplayer w połączeniu z portami graphics/win32-codecs oraz emulators/fedora/base ports (zobacz ten wątek na grupie dotyczącej portów).

13.10 - Czy mogę mieć wtyczkę Java w mojej przeglądarce? (tylko i386)

Wtyczka Java jest częścią Java Development Toolkit (JDK). Ze względów licencyjnych, OpenBSD nie może włączyć binarnych pakietów dla JDK. To oznacza, że będziesz musiał zbudować je z portów. Dalsze informacje na temat budowy JDK znajdziesz w FAQ 8 - Języki programowania. Gdy zakończysz kompilację JDK, będziesz mógł albo zainstalować pełny pakiet JDK lub tylko Java Runtime Environment (JRE), który jest podpakietem i zawiera wtyczkę do przeglądarki.

Podczas instalacji wyświetlane będą instrukcje w jaki sposób korzystać z wtyczki Java w przeglądarkach Firefox i Mozilla. Utwórz dowiązanie symboliczne, tak jak to zostało wyjaśnione, i powinieneś zobaczyć wtyczkę Javy wpisując "about:plugins" w pasku URL.

Uwaga: Wtyczka Java była testowana tylko z przeglądarkami Firefix i Mozilla. Jeżeli działa dobrze z inną twoją przeglądarką, prosimy daj nam znać.

13.11 - Czy mogę mieć wtyczkę Flash w mojej przeglądarce (tylko i386)?

Wtyczka Flash jest dostarczana tylko w formie binarnej przez firmę Adobe. Adobe nie dostarcza natywnej wersji dla OpenBSD, jednak jest ona dostępna dla systemu Linux jako wtyczka którą możesz uruchomić korzystając z emulacji Linuska. Wtyczka ta jest dostępna tylko dla platformy i386.

Zanim przejdziemy dalej, dobrym pomysłem jest zapoznanie się z materiałami dotyczącymi emulacji Linuksa na stronie manuala compat_linux(8) oraz FAQ 9 - Korzystanie z aplikacji Linuksowych w OpenBSD.

Jeżeli to zrozumiałeś i jeszcze nie zainstalowałeś niezbędnych plików, po prostu zainstaluj pakiet fedory. Zakładając ze posiadasz ustawioną zmienną środowiskową PKG_PATH (zobacz FAQ 15),

# pkg_add -i fedora_base
Wyrażenie to automatycznie ustawi kern.emul.linux=1, lecz nie na stałe. Jeżeli potrzebujesz trwałego uruchomienia emulacji Linuksa, będziesz musiał ustawić to w /etc/sysctl.conf, jak to zostało opisane w FAQ 9 - Korzystanie z aplikacji Linuksowych w OpenBSD.

Powinieneś ponadto wiedzieć, że dzielone biblioteki Linuksa oraz moduły nie mogą być użyte z binarkami OpenBSD, zatem będziesz potrzebował linuksowej przeglądarki.

Jednym z kandydatów jest przeglądarka Opera, dostępna w drzewie portów. OpenBSD nie dostarcza pakietu dla tej przeglądarki ponieważ licencja Opery nie jest jasna w kwestii redystrybucji. Tym niemniej, instalacja nie powinna potrwać długo ponieważ Opera jest rozpowszechniana w formie binarnej przez Opera Software. Po tym wszystkim możesz w łatwy sposób zainstalować wtyczkę Flash z drzewa portów.

# cd /usr/ports/www/opera # make install # cd /usr/ports/www/opera-flashplugin # make install

Uwaga: Powinno wystarczyć wykonanie ostatniego kroku, a system postów powinien zainstalować zależności automatycznie. Jednak dla przejrzystości, rozdzieliliśmy ten proces na kilka kroków.

Jeśli postępowałeś zgodnie z powyższymi wytycznymi, wtyczka Flash powinna być teraz wylistowana gdy wpiszesz "about:plugins" w belce URL przeglądarki.

[FAQ Index] [Sekcja 12 - Pytania dotyczące poszczególnych platform i sprzętu] [Sekcja 14 - Konfiguracja dysku]


[wstecz] www@openbsd.org
$OpenBSD: faq13.html,v 1.30 2007/12/09 14:56:37 tobias Exp $