Path: blob/main/documentation/content/ja/books/handbook/multimedia/_index.adoc
18098 views
---
title: 第7ç« ãã«ãã¡ãã£ã¢
part: ããŒãII. æ¥ã
ã®ç掻
prev: books/handbook/desktop
next: books/handbook/kernelconfig
description: FreeBSD ã¯æ°å€ãã®çš®é¡ã®ãµãŠã³ãã«ãŒãã«å¯Ÿå¿ããŠãããFreeBSD ã·ã¹ãã ã§åé³ã«å¿ å®ãªåºåãæ¥œããããšãã§ããŸãã
tags: ["multimedia", "sound card", "MP3", "MythTV", "scanner", "SANE"]
showBookMenu: true
weight: 10
params:
path: "/books/handbook/multimedia/"
---
[[multimedia]]
= ãã«ãã¡ãã£ã¢
:doctype: book
:toc: macro
:toclevels: 1
:icons: font
:sectnums:
:sectnumlevels: 6
:sectnumoffset: 7
:partnums:
:source-highlighter: rouge
:experimental:
:images-path: books/handbook/multimedia/
ifdef::env-beastie[]
ifdef::backend-html5[]
:imagesdir: ../../../../images/{images-path}
endif::[]
ifndef::book[]
include::shared/authors.adoc[]
include::shared/mirrors.adoc[]
include::shared/releases.adoc[]
include::shared/attributes/attributes-{{% lang %}}.adoc[]
include::shared/{{% lang %}}/teams.adoc[]
include::shared/{{% lang %}}/mailing-lists.adoc[]
include::shared/{{% lang %}}/urls.adoc[]
toc::[]
endif::[]
ifdef::backend-pdf,backend-epub3[]
include::../../../../../shared/asciidoctor.adoc[]
endif::[]
endif::[]
ifndef::env-beastie[]
toc::[]
include::../../../../../shared/asciidoctor.adoc[]
endif::[]
[[multimedia-synopsis]]
== ãã®ç« ã§ã¯
FreeBSD ã¯æ°å€ãã®çš®é¡ã®ãµãŠã³ãã«ãŒãã«å¯Ÿå¿ããŠããã FreeBSD ã·ã¹ãã ã§åé³ã«å¿ å®ãªåºåãæ¥œããããšãã§ããŸãã ããã«ã¯é²é³æ©èœãšãMPEG Audio Layer 3 (MP3) ã Waveform Audio File (WAV), Ogg Vorbis ãªã©ãã¯ãããšããå€ãã®åœ¢åŒã®é³æ¥œã®åçæ©èœãå«ãŸããŸãã å ã㊠FreeBSD ã® Ports Collection ã«ã¯ã é²é³ãã鳿¥œãç·šéããããé³é¿å¹æãå ããããæ¥ç¶ããã MIDI æ©åšãå¶åŸ¡ããããã®ã¢ããªã±ãŒã·ã§ã³ãçšæãããŠããŸãã
FreeBSD ã§ã¯ãããªãã¡ã€ã«ããã³ DVD ã®åçãã§ããŸãã FreeBSD ã® Ports Collection ã«ã¯ãããŸããŸãªãããªã¡ãã£ã¢ããšã³ã³ãŒãã 倿ãåçããã¢ããªã±ãŒã·ã§ã³ãçšæãããŠããŸãã
ãã®ç« ã§ã¯ FreeBSD äžã§ãµãŠã³ãã«ãŒãããããªã®åçãTV ãã¥ãŒãã«ãŒãã ã¹ãã£ããèšå®ããæ¹æ³ã«ã€ããŠèª¬æããŸãã ãŸãããããã®ããã€ã¹ã䜿ãããã®ã¢ããªã±ãŒã·ã§ã³ã«ã€ããŠã説æããŸãã
ãã®ç« ãèªããšã以äžã®ããšãããããŸãã
* FreeBSD ã§ã®ãµãŠã³ãã«ãŒãã®èšå®æ¹æ³
* ãµãŠã³ãã®èšå®ã«é¢ãããã©ãã«ã·ã¥ãŒãã£ã³ã°
* MP3 ããã³ãã®ä»ã®åœ¢åŒã®é³å£°ãåçããšã³ã³ãŒãããæ¹æ³
* FreeBSD ã·ã¹ãã ã§ã®ãããªåçã®æºå
* DVD, [.filename]#.mpg# ããã³ [.filename]#.avi# ãã¡ã€ã«ãåçããæ¹æ³
* CD ããã³ DVD ã®æ
å ±ããã¡ã€ã«ã«æœåºããæ¹æ³
* TV ã«ãŒãã®èšå®æ¹æ³
* MythTV ã FreeBSD ã«ã€ã³ã¹ããŒã«ããŠèšå®ããæ¹æ³
* ç»åã¹ãã£ãã®èšå®æ¹æ³
* Bluetooth ããããã³ã®èšå®æ¹æ³
ãã®ç« ãèªãåã«ã以äžã®ããšãçè§£ããŠããå¿
èŠããããŸãã
* ã¢ããªã±ãŒã·ã§ã³ã®ã€ã³ã¹ããŒã«æ¹æ³ (crossref:ports[ports,ã¢ããªã±ãŒã·ã§ã³ã®ã€ã³ã¹ããŒã« - packages ãš ports])
[[sound-setup]]
== ãµãŠã³ãã«ãŒãã®èšå®
èšå®ãã¯ãããåã«ããµãŠã³ãã«ãŒãã®ã¢ãã«ã ãã®ã«ãŒãã䜿çšããŠãããããã確èªããŠãã ããã FreeBSD 㯠ãµãŠã³ãã«ãŒãã«å¹
åºã察å¿ããŠããŸãã 䜿çšããŠããã«ãŒãã察å¿ããŠãããã©ããã ã©ã® FreeBSD ãã©ã€ãã䜿ããã«ã€ããŠã link:{u-rel120-hardware}[ããŒããŠã§ã¢ããŒã] ã®å¯Ÿå¿ãªãŒãã£ãªããã€ã¹ã®äžèЧã確èªããŠãã ããã
ãµãŠã³ãããã€ã¹ã䜿ãããã«ã¯ã ããã€ã¹ãã©ã€ããèªã¿èŸŒãŸãªããã°ãããŸããã ãã£ãšãç°¡åãªæ¹æ³ã¯ man:kldload[8] ã䜿ã£ãŠãµãŠã³ãã«ãŒãã®ã«ãŒãã«ã¢ãžã¥ãŒã«ãèªã¿èŸŒãããšã§ãã æ¬¡ã®äŸã¯ãIntel 仿§ã®ãã«ãã€ã³ãªãŒãã£ãªãããã»ããã®ãã©ã€ããèªã¿èŸŒãäŸã§ãã
[source,shell]
....
# kldload snd_hda
....
ãã®ãã©ã€ããèµ·åæã«èªã¿èŸŒãããã«èšå®ããããã«ã¯ã [.filename]#/boot/loader.conf# ã«ãã©ã€ãã远å ããŠãã ããã ãã®ãã©ã€ãã®å Žåã¯ä»¥äžã®è¡ã«ãªããŸãã
[.programlisting]
....
snd_hda_load="YES"
....
ä»ã«å©çšå¯èœãªèªã¿èŸŒã¿å¯èœãªãµãŠã³ãã¢ãžã¥ãŒã«ã¯ [.filename]#/boot/defaults/loader.conf# ã«èšèŒãããŠããŸãã ã©ã®ãã©ã€ããå©çšããã°ããã確ãã§ãªããã°ã [.filename]#snd_driver# ã¢ãžã¥ãŒã«ãèªã¿èŸŒãã§ãã ããã
[source,shell]
....
# kldload snd_driver
....
[.filename]#snd_driver# ã¢ãžã¥ãŒã«ã¯ã äžè¬ã«äœ¿çšãããã«ãŒãã«å¯Ÿå¿ãããã©ã€ãããŸãšããŠäžåºŠã«èªã¿èŸŒãã¡ã¿ãã©ã€ãã§ãã ãã®ãã©ã€ãã䜿çšããã°ãéããã«æ£ãããã©ã€ããæ¢ãåºãããšãã§ããŸãã [.filename]#/boot/loader.conf# ãã¡ã€ã«ã䜿çšããŠã ãã¹ãŠã®ãµãŠã³ããã©ã€ããèªã¿èŸŒãããšãã§ããŸãã
[.filename]#snd_driver# ã¡ã¿ãã©ã€ãã®èªã¿èŸŒã¿åŸã«ã ã©ã®ãã©ã€ãããµãŠã³ãã«ãŒãã«éžæãããã®ããç¥ãã«ã¯ã `cat /dev/sndstat` ãšå
¥åããŠãã ããã
=== ãµãŠã³ãã«å¯Ÿå¿ããã«ã¹ã¿ã ã«ãŒãã«ãèšå®ãã
ãã®ç¯ã¯ã ãµãŠã³ãã«ãŒãã®ãã©ã€ããã«ãŒãã«ãžéçã«çµã¿èŸŒãããšèããŠãããŠãŒã¶åãã§ãã ã«ãŒãã«åæ§ç¯ã®è©³çŽ°ã¯ crossref:kernelconfig[kernelconfig,FreeBSD ã«ãŒãã«ã®ã³ã³ãã£ã°ã¬ãŒã·ã§ã³] ãåç
§ããŠãã ããã
ãµãŠã³ãã«å¯Ÿå¿ããã«ã¹ã¿ã ã«ãŒãã«ã䜿ããšãã«ã¯ã ãªãŒãã£ãªãã¬ãŒã ã¯ãŒã¯ãã©ã€ããã«ãŒãã«ã³ã³ãã£ã°ã¬ãŒã·ã§ã³ãã¡ã€ã«ã«è¿œå ããŠãã ããã
[.programlisting]
....
device sound
....
次ã«ããµãŠã³ãã«ãŒãã«å¯Ÿå¿ãããã©ã€ãã远å ããŸãã åç¯ã® Intel 仿§ã®ãã«ãã€ã³ãªãŒãã£ãªãããã»ããã®äŸã§ã¯ã ã«ã¹ã¿ã ã«ãŒãã«ã³ã³ãã£ã°ã¬ãŒã·ã§ã³ãã¡ã€ã«ã«ä»¥äžã®è¡ã远å ããŠãã ããã
[.programlisting]
....
device snd_hda
....
ãã©ã€ãã®ããã¥ã¢ã«ããŒãžãèªãã§ã ãã©ã€ãã䜿çšããããã€ã¹åã調ã¹ãŠãã ããã
PnP é察å¿ã® ISA ãµãŠã³ãã«ãŒãã§ã¯ã IRQ ããã³ I/O ããŒãã®èšå®ã [.filename]#/boot/device.hints#ã ã«æå®ããå¿
èŠããããããããŸããã ã·ã¹ãã ã®èµ·åæã«ãman:loader[8] ã¯ãã®ãã¡ã€ã«ãèªã¿ãèšå®æ
å ±ãã«ãŒãã«ã«æž¡ããŸãã ããšãã°ãPnP é察å¿ã®å€ã Creative SoundBlaster(R) 16 (ISA æ¥ç¶) ã«ã¯ `snd_sb16` ãšãšãã« man:snd_sbc[4] ãã©ã€ãã䜿çšããŸãã ãã®ã«ãŒãã䜿çšããå Žåã«ã¯ã ã«ãŒãã«ã³ã³ãã£ã°ã¬ãŒã·ã§ã³ãã¡ã€ã«ã«ä»¥äžã®è¡ã远å ããŠãã ããã
[.programlisting]
....
device snd_sbc
device snd_sb16
....
ããã«ãŒãã `0x220` I/O port ãš IRQ `5` ã䜿çšããŠããå Žåã«ã¯ã [.filename]#/boot/device.hints# ã«ä»¥äžã®è¡ã远å ããŠãã ããã
[.programlisting]
....
hint.sbc.0.at="isa"
hint.sbc.0.port="0x220"
hint.sbc.0.irq="5"
hint.sbc.0.drq="1"
hint.sbc.0.flags="0x15"
....
[.filename]#/boot/device.hints# ã«çšããã¹ãæ§æã¯ãman:sound[4] ããã³ã ãµãŠã³ãã«ãŒãã®åãã©ã€ãã®ããã¥ã¢ã«ããŒãžã«èšèŒãããŠããŸãã
ãããŸã§ã®èšå®ã¯ããã©ã«ãã®ãã®ã§ãã ã«ãŒãã䜿çšããç¶æ³ã«ãã£ãŠã¯ã IRQ ããã®ä»ã®èšå®ã倿Žããå¿
èŠããããããããŸããã ãã®ã«ãŒãã«ã€ããŠã®è©³çްã¯ã man:snd_sbc[4] ãã芧ãã ããã
[[sound-testing]]
=== ãµãŠã³ãã®ãã¹ã
å¿
èŠãšãªãã¢ãžã¥ãŒã«ãèªã¿èŸŒãããã«ã¹ã¿ã ã«ãŒãã«ã§åèµ·åãããšã ãµãŠã³ãã«ãŒããæ€åºãããŸãã 確èªãããã«ã¯ã`dmesg | grep pcm` ãšå®è¡ããŠãã ããã ãã®äŸã¯ããã«ãã€ã³ Conexant CX20590 ãããã»ãããæèŒããã·ã¹ãã ã®ãã®ã§ãã
[source,shell]
....
pcm0: <NVIDIA (0x001c) (HDMI/DP 8ch)> at nid 5 on hdaa0
pcm1: <NVIDIA (0x001c) (HDMI/DP 8ch)> at nid 6 on hdaa0
pcm2: <Conexant CX20590 (Analog 2.0+HP/2.0)> at nid 31,25 and 35,27 on hdaa1
....
ãµãŠã³ãã«ãŒãã®ç¶æ
ã¯ã 以äžã®ã³ãã³ãã䜿çšããŠç¢ºèªããããšãã§ããŸãã
[source,shell]
....
# cat /dev/sndstat
FreeBSD Audio Driver (newpcm: 64bit 2009061500/amd64)
Installed devices:
pcm0: <NVIDIA (0x001c) (HDMI/DP 8ch)> (play)
pcm1: <NVIDIA (0x001c) (HDMI/DP 8ch)> (play)
pcm2: <Conexant CX20590 (Analog 2.0+HP/2.0)> (play/rec) default
....
ãã®åºåã¯ããµãŠã³ãã«ãŒãã«ãã£ãŠç°ãªããŸãã [.filename]#pcm# ããã€ã¹ããªããã°ã é©åãªããã€ã¹ãã©ã€ããèªã¿èŸŒãŸããŠãããã ã«ãŒãã«ã«è¿œå ãããŠã³ã³ãã€ã«ãããŠãããã©ããã確èªããŠãã ããã æ¬¡ã®ç¯ã§ã¯ãè¯ãããåé¡ãšãã®è§£æ±ºæ¹æ³ããªã¹ãã¢ããããŠããŸãã
ãã¹ãŠããŸãããã°ããµãŠã³ãã«ãŒãã FreeBSD ã§æ©èœããã§ãããã CD ãŸã㯠DVD ãã©ã€ãã®ãªãŒãã£ãªåºå端åããµãŠã³ãã«ãŒããšé©åã«æ¥ç¶ãããŠããã°ã man:cdcontrol[1] ã䜿ã£ãŠãã©ã€ãå
ã®ãªãŒãã£ãª CD ãåçã§ããŸãã
[source,shell]
....
% cdcontrol -f /dev/acd0 play 1
....
[WARNING]
====
ãªãŒãã£ãª CD ã¯ç¹å¥ãªãšã³ã³ãŒãã£ã³ã°ãè¡ãããŠããããã man:mount[8] ã䜿ã£ãŠããŠã³ããã¹ãã§ã¯ãããŸããã
====
package:audio/workman[] ã®ããã«ã ããããã€ã³ã¿ãã§ãŒã¹ãæäŸããããŸããŸãªã¢ããªã±ãŒã·ã§ã³ããããŸãã package:audio/mpg123[] port ãã€ã³ã¹ããŒã«ã㊠MP3 ãªãŒãã£ãªãã¡ã€ã«ãèãããšãã§ããŸãã
æã£åãæ©ãã«ãŒãããã¹ãããã«ã¯ã [.filename]#/dev/dsp# ããã€ã¹ã«ããŒã¿ãéã£ãŠã¿ãŠãã ããã
[source,shell]
....
% cat filename > /dev/dsp
....
ããã§ [.filename]#filename# ã¯ãã©ã®ãããªåœ¢åŒã®ãã¡ã€ã«ã§ãæ§ããŸããã ãã®ã³ãã³ãã©ã€ã³ãå®è¡ãããšéé³ãçºçããã¯ãã§ãã ããã«ããããµãŠã³ãã«ãŒããåäœããŠããããšã確èªã§ããŸãã
[NOTE]
====
[.filename]#/dev/dsp*# ããã€ã¹ããŒãã¯ã å¿
èŠã«å¿ããŠèªåçã«äœæãããŸãã ããã€ã¹ããŒãã䜿çšãããŠããªãå Žåã«ã¯ååšããã man:ls[1] ã®åºåã«è¡šç€ºãããŸããã
====
[[bluetooth-headset]]
=== Bluetooth ãµãŠã³ãããã€ã¹ã®èšå®
Bluetooth ããã€ã¹ãžã®æ¥ç¶ã«ã€ããŠã®èª¬æã¯ããã®ç« ã®ç¯å²å€ã§ãã 詳现ã«ã€ããŠã¯ crossref:advanced-networking[network-bluetooth,Bluetooth] ãã芧ãã ããã
FreeBSD ã®ãµãŠã³ãã·ã¹ãã ã§ Bluetooth ãµãŠã³ãã·ã³ã¯ãåããã«ã¯ãæåã« package:audio/virtual_oss[] ãã€ã³ã¹ããŒã«ããŠãã ããã
[source,shell]
....
# pkg install virtual_oss
....
package:audio/virtual_oss[] ã䜿ãã«ã¯ã ã«ãŒãã«ã« `cuse` ãèªã¿èŸŒãŸããŠããå¿
èŠããããŸãã
[source,shell]
....
# kldload cuse
....
ã·ã¹ãã ã®ã¹ã¿ãŒãã¢ããæã« `cuse` ãèªã¿èŸŒãã«ã¯ã以äžã®ã³ãã³ããå®è¡ããŠãã ããã
[source,shell]
....
# echo 'cuse_load=yes' >> /boot/loader.conf
....
package:audio/virtual_oss[] ã§ããããã³ããµãŠã³ãã·ã³ã¯ãšããŠäœ¿ãã«ã¯ã Blueooth ãªãŒãã£ãªããã€ã¹ã«æ¥ç¶åŸã ä»®æ³ããã€ã¹ãäœæããå¿
èŠããããŸãã
[source,shell]
....
# virtual_oss -C 2 -c 2 -r 48000 -b 16 -s 768 -R /dev/null -P /dev/bluetooth/headphones -d dsp
....
[NOTE]
====
ãã®äŸã«ãããŠã _headphones_ ã¯ã [.filename]#/etc/bluetooth/hosts# ã«èšèŒãããŠãããã¹ãåã§ãã 代ããã« `BT_ADDR` ã䜿ããŸãã
====
詳现ã«ã€ããŠã¯ãman:virtual_oss[8] ãã芧ãã ããã
[[troubleshooting]]
=== ãµãŠã³ãã«ãŒãã®åé¡ã«ã€ããŠã®ãã©ãã«ã·ã¥ãŒãã£ã³ã°
<<multimedia-sound-common-error-messages>> ã¯ã è¯ããããšã©ãŒã¡ãã»ãŒãžãšãã®è§£æ±ºæ³ã®äžèЧã§ãã
[[multimedia-sound-common-error-messages]]
.è¯ããããšã©ãŒã¡ãã»ãŒãž
[cols="1,1", frame="none", options="header"]
|===
| ãšã©ãŒ
| è§£æ±ºæ¹æ³
|`sb_dspwr(XX) timed out`
|
䜿çšãã I/O ããŒããé©åã«èšå®ãããŠããŸããã
|`bad irq XX`
|
䜿çšãã IRQ ãæ£ããèšå®ãããŠããŸããã ãµãŠã³ãã«ãŒãã® IRQ ãšèšå®ãã IRQ ãåããã©ãã確ãããŠãã ããã
|`xxx: gus pcm not attached, out of memory`
|
ããã€ã¹ã䜿çšããã®ã«ååãªã¡ã¢ãªã確ä¿ã§ããŸããã
|`xxx: can't open /dev/dsp!`
|
`fstat \| grep dsp` ãšå
¥åããŠã ä»ã®ã¢ããªã±ãŒã·ã§ã³ãããã€ã¹ã䜿çšããŠããã調ã¹ãŠãã ããã æ³šç®ãã¹ããã©ãã«ã¡ãŒã«ã¯ esound ãš KDE ã®ãµãŠã³ãæ©èœã§ãã
|===
æè¿ã®ã°ã©ãã£ãã¯ã«ãŒãã®äžã«ã¯ã HDMI ãå©çšããããã ã°ã©ãã£ãã¯ã«ãŒãèªèº«ããµãŠã³ãã«ãŒããæã€ãã®ããããŸãã ãã®ãããªãµãŠã³ãããã€ã¹ã«ã¯ã æãšããŠãµãŠã³ãã«ãŒãããè¥ãçªå·ãä»ããããããšããããŸãã ãã®ãããªå Žåã«ã¯ã ãµãŠã³ãã«ãŒããããã©ã«ããã¬ã€ããã¯ããã€ã¹ãšããŠå©çšã§ããŸããã ãã®ããšãåå ãã©ããã確èªããã«ã¯ãdmesg ãå®è¡ã㊠`pcm` ãæ¢ããŠãã ããã 以äžã®ãããªåºåãåŸããããããŸããã
[.programlisting]
....
...
hdac0: HDA Driver Revision: 20100226_0142
hdac1: HDA Driver Revision: 20100226_0142
hdac0: HDA Codec #0: NVidia (Unknown)
hdac0: HDA Codec #1: NVidia (Unknown)
hdac0: HDA Codec #2: NVidia (Unknown)
hdac0: HDA Codec #3: NVidia (Unknown)
pcm0: <HDA NVidia (Unknown) PCM #0 DisplayPort> at cad 0 nid 1 on hdac0
pcm1: <HDA NVidia (Unknown) PCM #0 DisplayPort> at cad 1 nid 1 on hdac0
pcm2: <HDA NVidia (Unknown) PCM #0 DisplayPort> at cad 2 nid 1 on hdac0
pcm3: <HDA NVidia (Unknown) PCM #0 DisplayPort> at cad 3 nid 1 on hdac0
hdac1: HDA Codec #2: Realtek ALC889
pcm4: <HDA Realtek ALC889 PCM #0 Analog> at cad 2 nid 1 on hdac1
pcm5: <HDA Realtek ALC889 PCM #1 Analog> at cad 2 nid 1 on hdac1
pcm6: <HDA Realtek ALC889 PCM #2 Digital> at cad 2 nid 1 on hdac1
pcm7: <HDA Realtek ALC889 PCM #3 Digital> at cad 2 nid 1 on hdac1
...
....
ãã®äŸã§ã¯ãã°ã©ãã£ãã¯ã«ãŒã (`NVidia`) ã«ã¯ããµãŠã³ãã«ãŒã (`Realtek ALC889`) ããè¥ãçªå·ãä»ããããŠããŸãã ãµãŠã³ãã«ãŒããããã©ã«ãã®ãã¬ã€ããã¯ããã€ã¹ãšããŠå©çšããã«ã¯ã `hw.snd.default_unit` ããã¬ã€ããã¯ã§äœ¿çšãããŠãããçªå·ã«å€æŽããŠãã ããã
[source,shell]
....
# sysctl hw.snd.default_unit=n
....
ããã§ã`n` ã¯äœ¿çšãããµãŠã³ãããã€ã¹ã®çªå·ã§ãã ãã®äŸã§ã¯ `4` ã§ãã [.filename]#/etc/sysctl.conf# ã«ä»¥äžã®è¡ãå
¥ãããšã èšå®ã®å€æŽãåžžã«åæ ãããããã«ãªããŸãã
[.programlisting]
....
hw.snd.default_unit=4
....
[[sound-multiple-sources]]
=== è€æ°é³æºã®å©çš
åæã«åçããããšã®ã§ãã鳿ºãè€æ°å®è£
ããŠããããšã¯ã å€ãã®å ŽåæãŸããããšã§ãã FreeBSD ã§ã¯ã"ä»®æ³ãµãŠã³ããã£ãã«" ã䜿ã£ãŠã«ãŒãã«å
ã§ãµãŠã³ããåæããããšã«ããã ãµãŠã³ãã«ãŒãã®åçãå€éåããããšãã§ããŸãã
ä»®æ³ãã£ãã«ã®æ°ã決ããã®ã«äžã€ã® man:sysctl[8] 倿°ãèšå®ã§ããŸãã
[source,shell]
....
# sysctl dev.pcm.0.play.vchans=4
# sysctl dev.pcm.0.rec.vchans=4
# sysctl hw.snd.maxautovchans=4
....
ãã®äŸã§ã¯åã€ã®ä»®æ³ãã£ãã«ãèšå®ããŠããŸãã ããã¯éåžžå©çšããäžã§ååå®çšçãªæ°ã§ãã `dev.pcm.0.play.vchans=4` ãš `dev.pcm.0.rec.vchans=4` ã¯ã ããã€ã¹ãåãä»ããããåŸã§èšå®ã§ããŸãã ããã㯠[.filename]#pcm0# ãåçãé²é³ã®ããã«æã£ãŠããä»®æ³ãã£ãã«ã®æ°ã§ãã `hw.snd.maxautovchans` ã¯ã man:kldload[8] ãçšããŠèªèãããæ°ããããã€ã¹ã®ä»®æ³ãã£ãã«æ°ã§ãã [.filename]#pcm# ã¢ãžã¥ãŒã«ã¯ããŒããŠã§ã¢ãã©ã€ããšã¯ç¬ç«ããŠèªã¿èŸŒãããšãã§ããã®ã§ã `hw.snd.maxautovchans` ã¯ããªãŒãã£ãªããã€ã¹ãåãä»ããããæã«ã ããã€ã¹ã«äžããããä»®æ³ãã£ãã«ã®æ°ã衚ããŠããŸãã ããè©³çŽ°ãªæ
å ±ã«ã€ããŠã¯ man:pcm[4] ãåç
§ããŠãã ããã
[NOTE]
====
ããã€ã¹ã䜿çšããŠãããšãã«ä»®æ³ãã£ã³ãã«ã®æ°ã倿Žããããšã¯ã§ããŸããã ãŸãããã¥ãŒãžãã¯ãã¬ãŒã€ããµãŠã³ãããŒã¢ã³ãšãã£ã ããã€ã¹ã䜿çšããŠãããã¹ãŠã®ããã°ã©ã ãçµäºããŠãã ããã
====
[.filename]#/dev/dsp0# ãå¿
èŠãšããããã°ã©ã ãæèããªããŠãã é©å㪠[.filename]#pcm# ããã€ã¹ãèªåçã«èšå®ãããŸãã
=== ãããµãã£ãã«ã®åæå€ãèšå®ãã
åãããµãã£ãã«ã®åæå€ã¯ man:pcm[4] ãã©ã€ãã®ãœãŒã¹ã³ãŒãã«ããŒãã³ãŒãã£ã³ã°ãããŠããŸãã man:mixer[8] ããã³ä»ã®ãµãŒãããŒãã£è£œã®ã¢ããªã±ãŒã·ã§ã³ãããŒã¢ã³ã«ãã£ãŠã ãµãŠã³ãã«ãŒãã®ãããµã¬ãã«ã倿Žã§ããŸããã æ°žç¶çãªè§£æ±ºæ¹æ³ã§ã¯ãããŸããã ãã®ããã以äžã®äŸã®ããã«ã é©åãªå€ã [.filename]#/boot/device.hints# ãã¡ã€ã«ã«èšè¿°ããããšã«ãã£ãŠã ãã©ã€ãã¬ãã«ã§ãããµã®åæå€ãèšå®ããããšãã§ããŸãã
[.programlisting]
....
hint.pcm.0.vol="50"
....
ãã®äŸã§ã¯ãman:pcm[4] ãèªã¿èŸŒãŸãããšåæã«ã ããªã¥ãŒã ãã£ãã«ã®åæå€ã `50` ã«èšå®ããŸãã
[[sound-mp3]]
== MP3 ãªãŒãã£ãª
ãã®ç¯ã§ã¯ãFreeBSD ã§å©çšã§ãã MP3 ãã¬ã€ã€ãããªãŒãã£ãª CD ãã©ãã¯ãåžãåºãæ¹æ³ã ããã³ MP3 ã®ãšã³ã³ãŒãã ãã³ãŒãã®æ¹æ³ã«ã€ããŠèª¬æããŸãã
[[mp3-players]]
=== MP3 ãã¬ã€ã€
Audacious 㯠人æ°ã®ããã°ã©ãã£ã«ã«ãª MP3 ãã¬ã€ã€ã§ãã Winamp ã¹ãã³ã远å ã®ãã©ã°ã€ã³ã«å¯Ÿå¿ããŠããŸãã Audacious ã®ãã¬ã€ãªã¹ãã ã°ã©ãã£ãã¯ã€ã³ã©ã€ã¶çã®ã€ã³ã¿ãã§ãŒã¹ã¯çŽæçã§ãã Winamp ã䜿ããªããŠãã人ã¯ç°¡åã« Audacious ã䜿ããã§ãããã FreeBSD ã§ã¯ãAudacious 㯠package:multimedia/audacious[] ã® port ãŸã㯠package ããã€ã³ã¹ããŒã«ã§ããŸãã Audacious ã¯ãXMMS ã®åå«ã§ãã
package:audio/mpg123[] package ããã㯠port ã¯ã ã¯ä»£æ¿ãšãªã ã³ãã³ãã©ã€ã³äžã® MP3 ãã¬ã€ã€ã§ããã€ã³ã¹ããŒã«ããããåçãã MP3 ãã¡ã€ã«ãã³ãã³ãã©ã€ã³ããæå®ããŠãã ããã ããã·ã¹ãã ããè€æ°ã®ãªãŒãã£ãªããã€ã¹ãæèŒããŠããã®ã§ããã°ã ãµãŠã³ãããã€ã¹ãåæ§ã«æå®ããŠãã ããã
[source,shell]
....
# mpg123 -a /dev/dsp1.0 Foobar-GreatesHits.mp3
High Performance MPEG 1.0/2.0/2.5 Audio Player for Layers 1, 2 and 3
version 1.18.1; written and copyright by Michael Hipp and others
free software (LGPL) without any warranty but with best wishes
Playing MPEG stream from Foobar-GreatestHits.mp3 ...
MPEG 1.0 layer III, 128 kbit/s, 44100 Hz joint-stereo
....
ä»ã® MP3 ãã¬ã€ã€ã Ports Collection ããå©çšã§ããŸãã
[[rip-cd]]
=== CD ãªãŒãã£ãªãã©ãã¯ã®æœåº
CD å
šäœãŸã㯠CD ãã©ãã¯ã MP3 ã«å€æããåã«ãCD äžã®ãªãŒãã£ãªããŒã¿ãããŒããã£ã¹ã¯äžã«æœåºããå¿
èŠããããŸãã ãã㯠raw CD Digital Audio (CDDA) ããŒã¿ã WAV ãã¡ã€ã«ã«ã³ããŒããããšã§è¡ãããŸãã
package:sysutils/cdrtools[] ã¹ã€ãŒãããã€ã³ã¹ããŒã«ããã `cdda2wav` ããŒã«ãçšããŠãCD ãããªãŒãã£ãªããŒã¿ãæœåºã§ããŸãã
CD ããã©ã€ãã«ãããŠæ¬¡ã®ã³ãã³ãã `root` æš©éã§å®è¡ãããšã CD å
šäœããã©ãã¯ããšã«åã
ã® WAV ãã¡ã€ã«ã«æœåºã§ããŸãã
[source,shell]
....
# cdda2wav -D 0,1,0 -B
....
ãã®äŸã§ã¯ã`-D _0,1,0_` 㯠SCSI ããã€ã¹ [.filename]#0,1,0# ãæœåºãã CD ã衚ããŸãã `cdrecord -scanbus` ã䜿ã£ãŠã ã·ã¹ãã ã®é©åãªããã€ã¹ãã©ã¡ãŒã¿ãååŸããŠãã ããã
åã
ã®ãã©ãã¯ãæœåºããã«ã¯ã 次ã®ããã« `-t` ã§ãã©ãã¯ãæå®ããŠãã ããã
[source,shell]
....
# cdda2wav -D 0,1,0 -t 7
....
ç¯å²ãæå®ããŠã äžçªç®ããäžçªç®ã®ãã©ãã¯ãŸã§æœåºãããå Žåã æ¬¡ã®ããã«ããŸãã
[source,shell]
....
# cdda2wav -D 0,1,0 -t 1+7
....
ATAPI (IDE) CDROM ãã©ã€ãããæœåºããã«ã¯ã SCSI ãŠãããçªå·ãããã€ã¹åã«çœ®ãæããŠæå®ããŸãã ããšãã° IDE ãã©ã€ãããäžçªç®ã®ãã©ãã¯ãæœåºããã«ã¯ã 次ã®ããã«ããŸãã
[source,shell]
....
# cdda2wav -D /dev/acd0 -t 7
....
ãŸãã¯ãcrossref:disks[duplicating-audiocds,ããªãŒãã£ãª CD ã®è€è£œã] ã§èª¬æãããŠããããã«ã`dd` ã䜿ã£ãŠ ATAPI ãã©ã€ãäžã®ãªãŒãã£ãªãã©ãã¯ãå±éã§ããŸãã
[[mp3-encoding]]
=== MP3 ã®ãšã³ã³ãŒããšãã³ãŒã
lame ã¯ã ããã¥ã©ãŒãª MP3 ãšã³ã³ãŒãã§ãã package:audio/lame[] port ããã€ã³ã¹ããŒã«ã§ããŸãã ç¹èš±ã®åé¡ãããpackage ã¯å©çšã§ããŸããã
次ã®ã³ãã³ããå®è¡ãããšãæœåºãã WAV ãã¡ã€ã« [.filename]#audio01.wav# ã䜿ã£ãŠ [.filename]#audio01.mp3# ã«å€æããŸãã
[source,shell]
....
# lame -h -b 128 --tt "æ²å" --ta "ã¢ãŒãã£ã¹ãå" --tl "ã¢ã«ãã å" \
--ty "幎" --tc "ã³ã¡ã³ã" --tg "ãžã£ã³ã«" audio01.wav audio01.mp3
....
ããã§æå®ããŠãã 128 kbits ã¯ãMP3 ã®æšæºã®ãããã¬ãŒãã§ãã 160 kbits ãŸã㯠192 kbits ã®ãããã¬ãŒãã¯ã ããã«é«é³è³ªãæäŸããŸãã ãããã¬ãŒããé«ããªãã«ã€ããŠäœæããã MP3 ãã¡ã€ã«ã¯å€ãã®ãã£ã¹ã¯é åãæ¶è²»ããŸãã `-h` ãªãã·ã§ã³ãæå®ãããš "äœéé«å質" ã¢ãŒããšãªããŸãã `--t` ã§ã¯ããŸããªãã·ã§ã³ã¯ ID3 ã¿ã°ãèšå®ããŸãã ãã®ã¿ã°ã«ã¯ãããŠãæ²ã®æ
å ±ãå«ãŸããŠããã MP3 ãã¡ã€ã«ã«æ ŒçŽãããŸãã Lame ã®ããã¥ã¢ã«ãåç
§ããã°ã ä»ã®ãšã³ã³ãŒãã£ã³ã°ã®ãªãã·ã§ã³ãèŠã€ããã§ãããã
MP3 ãããªãŒãã£ãª CD ãäœæããã«ã¯ã ãŸãéå§çž®ã®ãã¡ã€ã«åœ¢åŒã«å€æããªããã°ãªããŸããã XMMS 㯠WAV 圢åŒãžå€æã§ããŸããã mpg123 㯠raw Pulse-Code Modulation (PCM) ãªãŒãã£ãªããŒã¿ã«å€æããŸãã
mpg123 ã䜿ã£ãŠ [.filename]#audio01.mp3# ã倿ããã«ã¯ãPCM ãã¡ã€ã«ãæå®ããŠãã ããã
[source,shell]
....
# mpg123 -s audio01.mp3 > audio01.pcm
....
XMMS ã䜿ã£ãŠ MP3 ã WAV 圢åŒã«å€æããã«ã¯ã 以äžã®æé ã«åŸã£ãŠãã ããã
[.procedure]
====
*Procedure: XMMS ã䜿ã£ãŠ WAV 圢åŒã«å€æãã*
. XMMS ãèµ·åããŸãã
. å³ã¯ãªãã¯ã§ XMMS ã¡ãã¥ãŒã衚瀺ããŸãã
. `Options` ãã `Preferences` ãéžæããŸãã
. Output Plugin ã "Disk Writer Plugin" ã«å€æŽããŸãã
. `Configure` ãæŒããŸãã
. éå§çž®ãã¡ã€ã«ãæžãåºããã£ã¬ã¯ããªãå
¥åã ãŸãã¯éžæããŸãã
. æ®æ®µéã XMMS ãž MP3 ãã¡ã€ã«ãèªã¿èŸŒã¿ãŸãã é³é㯠100% ã§ã€ã³ã©ã€ã¶ã®èšå®ã¯ãªãã«ããŸãã
. `Play` ãæŒããŸãã XMMS 㯠MP3 ãåçããŠãããã®ããã«è¡šç€ºããŸããã é³å£°ã¯ããããŸããã å®éã«ã¯ MP3 ããã¡ã€ã«ã«åºåããŠããŸãã
. çµäºããããåã³ MP3 ãèŽããããã« Output Plugin ã以åã®ããã«å
ã«æ»ãã®ãå¿ããªãã§ãã ããã
====
WAV ãš PCM 圢åŒã¯ã cdrecord ã§å©çšã§ããŸãã WAV ãã¡ã€ã«ã䜿çšããå Žåã ããããã®ãã©ãã¯ã®å
é ã«å°ããªãã€ãºãå
¥ãã®ã«æ°ã¥ãã§ãããã ãã㯠WAV ãã¡ã€ã«ã®ãããæ
å ±ã§ãã package:audio/sox[] port ãŸã㯠package ã䜿ããšãããæ
å ±ãåé€ã§ããŸãã
[source,shell]
....
% sox -t wav -r 44100 -s -w -c 2 track.wav track.raw
....
FreeBSD ã§ã® CD äœæã®è©³ããæ
å ±ã¯ crossref:disks[creating-cds,ãå
ã¡ãã£ã¢ (CD & DVD) ã®äœæãšäœ¿çšã] ãåç
§ããŠãã ããã
[[video-playback]]
== ãããªåç
ãããªåçã®ããã®èšå®ãã¯ãããåã«ã ãããªã«ãŒãã®ã¢ãã«ããã³ãããã»ããã確èªããå¿
èŠããããŸãã Xorg ã¯ããŸããŸãªãããªã«ãŒãã«å¯Ÿå¿ããŠããŸããã ãã¹ãŠã®ã«ãŒãããããªåçã«æ§èœãçºæ®ã§ãããšã¯éããŸããã å©çšããŠãããããªã«ãŒãã® Xorg ãµãŒãã察å¿ããŠããæ¡åŒµæ©èœã®ãªã¹ããåŸãã«ã¯ã Xorg ãå®è¡äžã« `xdpyinfo` ãå®è¡ããŠãã ããã
ããŸããŸãªãã¬ã€ã€ããªãã·ã§ã³ã詊ãã®ã«ã ãã¹ããã¡ã€ã«ãšããŠå°ã㪠MPEG ãã¡ã€ã«ãçšæããŠããã®ã¯ããèãã§ãã ããã€ãã® DVD ã¢ããªã±ãŒã·ã§ã³ã¯ DVD ã¡ãã£ã¢ã [.filename]#/dev/dvd# ãšããŠåæèšå®ããŠããããããŒãã³ãŒãã£ã³ã°ããŠããã®ã§ã 次ã®ããã«é©åãªããã€ã¹ã«ã·ã³ããªãã¯ãªã³ã¯ã匵ã£ãŠãããšäŸ¿å©ãããããŸããã
[source,shell]
....
# ln -sf /dev/cd0 /dev/dvd
....
man:devfs[5] ã®ä»æ§ã«ããã ãã®ããã«æåã§äœæããããªã³ã¯ã¯ã·ã¹ãã ãåèµ·åãããšæ¶ããŠããŸããŸãã ã·ã¹ãã ã®èµ·åæã«ãããã®ã·ã³ããªãã¯ãªã³ã¯ãèªåçã«äœæããã«ã¯ã [.filename]#/etc/devfs.conf# ã«äžèšã®èšå®ã远å ããŠãã ããã
[.programlisting]
....
link cd0 dvd
....
ç¹å¥ãªæ©èœãå¿
èŠãšãã DVD ã®æœåºã«ã¯ã DVD ããã€ã¹ãžã®æžãèŸŒã¿æš©éãå¿
èŠã§ãã
Xorg ã€ã³ã¿ãã§ãŒã¹ã®äœ¿ãå
±æã¡ã¢ãªãæ¡åŒµããããã«ã 以äžã® man:sysctl[8] 倿°ã®å€ãå¢ããããšãæšå¥šãããŠããŸãã
[.programlisting]
....
kern.ipc.shmmax=67108864
kern.ipc.shmall=32768
....
[[video-interface]]
=== ãããªæ©èœã®æ±ºå®
Xorg ã«ãããŠãããªè¡šç€ºæ§èœãæ¹åããæ¹æ³ã¯ããã€ãããã æ£ããåäœãããã©ããã¯ããŒããŠã§ã¢ã«å€§ããäŸåããŠããŸãã äžèšã«èª¬æããã©ã®æ¹æ³ã§ãã ããŒããŠã§ã¢ãå€ãããšå質ãå€ããã§ãããã
ããç¥ããããããªã€ã³ã¿ãã§ãŒã¹ã¯æ¬¡ã®éãã§ãã
. Xorg: å
±æã¡ã¢ãªãçšããéåžžã®åºå
. XVideo: ç¹å¥ãªã¢ã¯ã»ã©ã¬ãŒã¿ã«ãã£ãŠã drawable ãªããžã§ã¯ãã«çŽæ¥ãããªã衚瀺ãã Xorg ã€ã³ã¿ãã§ãŒã¹ã®æ¡åŒµæ©èœã§ãã ãã®æ¡åŒµã䜿ãããšã§å»äŸ¡ãªã³ã³ãã¥ãŒã¿ã§ãé«å質ã®åçãå¯èœã«ãªããŸãã æ¬¡ã®ç¯ã§ã¯ã ãã®æ¡åŒµãåäœããŠããããšã®ç¢ºèªæ¹æ³ã«ã€ããŠèª¬æããŸãã
. SDL: Simple Directmedia Layer ã¯ã ããŸããŸãªãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®éã§ãµãŠã³ããšã°ã©ãã£ãã¯ã¹ã广çã«å©çšããã¯ãã¹ãã©ããããŒã ã¢ããªã±ãŒã·ã§ã³ãéçºããããšãç®çãšããã¬ã€ã€ã§ãã SDL ã¯ããŒããŠã§ã¢ã«å¯Ÿããäœã¬ãã«ã®æœè±¡çæŠå¿µãæäŸãã æã«ã¯ Xorg ã€ã³ã¿ãã§ãŒã¹ã䜿çšããããã广çãªããšããããŸãã FreeBSD ã§ã¯ãSDL ã¯ã package:devel/sdl20[] package ãŸã㯠port ã«ããã€ã³ã¹ããŒã«ã§ããŸãã
. DGA: Direct Graphics Access ã¯ã ããã°ã©ã ã Xorg ãµãŒããä»ããçŽæ¥ãã¬ãŒã ãããã¡ã倿Žããããšãå¯èœã«ãã Xorg ã®æ¡åŒµæ©èœã§ãã äœã¬ãã«ã®ã¡ã¢ãªãããã³ã°ãå®è¡ã§ããããšãæåŸ
ããŠããã®ã§ã ãã®æ©èœã䜿ãããã°ã©ã 㯠`root` æš©éã§å®è¡ãããªããã°ãªããŸããã DGA æ©èœæ¡åŒµã¯ man:dga[1] ã«ãã£ãŠãã¹ããšãã³ãããŒã¯ãã§ããŸãã `dga` å®è¡äžã¯ããŒããŒããæŒãã°ãã€ã§ããã£ã¹ãã¬ã€è²ã倿ŽãããŸãã äžæ¢ããã«ã¯ kbd:[q] ãæŒããŸãã
. SVGAlib: äœã¬ãã«ã³ã³ãœãŒã«ã°ã©ãã£ãã¯ã¬ã€ã€
[[video-interface-xvideo]]
==== XVideo
ãã®æ¡åŒµæ©èœãåäœããŠãããã©ããã調ã¹ãã«ã¯ã `xvinfo` ã䜿ããŸãã
[source,shell]
....
% xvinfo
....
以äžã®ãããªçµæãåŸããããªãã°ãã«ãŒã㯠XVideo ã«å¯Ÿå¿ããŠããŸãã
[source,shell]
....
X-Video Extension version 2.2
screen #0
Adaptor #0: "Savage Streams Engine"
number of ports: 1
port base: 43
operations supported: PutImage
supported visuals:
depth 16, visualID 0x22
depth 16, visualID 0x23
number of attributes: 5
"XV_COLORKEY" (range 0 to 16777215)
client settable attribute
client gettable attribute (current value is 2110)
"XV_BRIGHTNESS" (range -128 to 127)
client settable attribute
client gettable attribute (current value is 0)
"XV_CONTRAST" (range 0 to 255)
client settable attribute
client gettable attribute (current value is 128)
"XV_SATURATION" (range 0 to 255)
client settable attribute
client gettable attribute (current value is 128)
"XV_HUE" (range -180 to 180)
client settable attribute
client gettable attribute (current value is 0)
maximum XvImage size: 1024 x 1024
Number of image formats: 7
id: 0x32595559 (YUY2)
guid: 59555932-0000-0010-8000-00aa00389b71
bits per pixel: 16
number of planes: 1
type: YUV (packed)
id: 0x32315659 (YV12)
guid: 59563132-0000-0010-8000-00aa00389b71
bits per pixel: 12
number of planes: 3
type: YUV (planar)
id: 0x30323449 (I420)
guid: 49343230-0000-0010-8000-00aa00389b71
bits per pixel: 12
number of planes: 3
type: YUV (planar)
id: 0x36315652 (RV16)
guid: 52563135-0000-0000-0000-000000000000
bits per pixel: 16
number of planes: 1
type: RGB (packed)
depth: 0
red, green, blue masks: 0x1f, 0x3e0, 0x7c00
id: 0x35315652 (RV15)
guid: 52563136-0000-0000-0000-000000000000
bits per pixel: 16
number of planes: 1
type: RGB (packed)
depth: 0
red, green, blue masks: 0x1f, 0x7e0, 0xf800
id: 0x31313259 (Y211)
guid: 59323131-0000-0010-8000-00aa00389b71
bits per pixel: 6
number of planes: 3
type: YUV (packed)
id: 0x0
guid: 00000000-0000-0000-0000-000000000000
bits per pixel: 0
number of planes: 0
type: RGB (packed)
depth: 1
red, green, blue masks: 0x0, 0x0, 0x0
....
ãªã¹ãã«ãã圢åŒãYUV2, YUV12 ãªã©ã XVideo ã®ãã¹ãŠã®å®è£
ã§ååšãããšã¯éããŸããã 察å¿ããŠãã圢åŒãå°ãªãããã«ã ãããã¬ã€ã€ã§ã¯æªåœ±é¿ãåºããããããªãããšã«ã泚æããŠãã ããã
åºåã以äžã®ãããªå Žåã
[source,shell]
....
X-Video Extension version 2.2
screen #0
no adaptors present
....
ã«ãŒãã¯ãããã XVideo ã«å¯Ÿå¿ããŠããªãã®ã§ãããã ãã®ããšã¯ãã£ã¹ãã¬ã€ã§ãããªã衚瀺ããã®ã«ã ãããªã«ãŒãããã³ããã»ããµã«ãã£ãŠã¯ã èšç®äžã®èŠæ±ãæºããããšãããå°é£ã«ãªãããšãæå³ããŸãã
[[video-ports]]
=== ãããªãæ±ã ports ããã³ packages
ãã®ç¯ã§ã¯ Ports Collection ã§å©çšå¯èœãªã ãããªã®åçã«äœ¿çšã§ãããœãããŠã§ã¢ã«ã€ããŠç޹ä»ããŸãã
[[video-mplayer]]
==== MPlayer ããã³ MEncoder
MPlayer ã¯ã³ãã³ãã©ã€ã³ã®ãããªãã¬ã€ã€ã§ã é«éæ§ãšæè»æ§ãããããã°ã©ãã£ã«ã«ãªã€ã³ã¿ãã§ãŒã¹ãæã£ãŠããŸãã MPlayer ã®ä»ã®ã°ã©ãã£ã«ã«ãªããã³ããšã³ãã Ports Collection ããã€ã³ã¹ããŒã«ã§ããŸãã
MPlayer 㯠package:multimedia/mplayer[] package ãŸã㯠port ããã€ã³ã¹ããŒã«ã§ããŸãã ããã€ãã®ã³ã³ãã€ã«æã®ãªãã·ã§ã³ãèšå®ããããšãã§ãããŸãã æ§ç¯ã®éã«ããŸããŸãªããŒããŠã§ã¢ã®ãã§ãã¯ããããªãããŸãã ãã®ãããpackage ããã€ã³ã¹ããŒã«ãè¡ããã port ããæ§ç¯ããããšã奜ããŠãŒã¶ãããŸãã
port ãæ§ç¯ããéã«ãã¡ãã¥ãŒã®ãªãã·ã§ã³ã¯ãport ã«ã³ã³ãã€ã«æã«ãªãã·ã§ã³ãšããŠã©ã®åœ¢åŒã«å¯Ÿå¿ããããæ±ºå®ããããã èŠãŠããå¿
èŠããããŸãã ãªãã·ã§ã³ãéžæãããŠããªããã°ã MPlayer ã¯ãã®åœ¢åŒã®ãããªåœ¢åŒã衚瀺ããããšã¯åºæ¥ãŸããã ç¢å°ããŒãšã¹ããŒã¹ããŒã䜿ã£ãŠå¿
èŠãªåœ¢åŒãéžæããŠãã ããã éžæãçµãã£ãããkbd:[Enter] ãæŒããŠã port ã®æ§ç¯ãšã€ã³ã¹ããŒã«ãç¶ããŠãã ããã
ããã©ã«ãã§ã¯ããã® packege ãŸã㯠port ã¯ã `mplayer` ã³ãã³ãã©ã€ã³ãŠãŒãã£ãªãã£ãš `gmplayer` ã°ã©ãã£ã«ã«ãŠãŒãã£ãªãã£ãæ§ç¯ããŸãã ãããªããšã³ã³ãŒãããå¿
èŠãããã°ã package:multimedia/mencoder[] port ãã³ã³ãã€ã«ããŠãã ããã ã©ã€ã»ã³ã¹ã®å¶éã®ããã MEncoder ã® package ã¯å©çšã§ããŸããã
MPlayer ãåããŠèµ·åãããšã åèªã®ããŒã ãã£ã¬ã¯ããªå
ã« [.filename]#~/.mplayer# ãäœæãããŸãããã®ãµããã£ã¬ã¯ããªã«ã¯ã ãŠãŒã¶åºæã®èšå®ãã¡ã€ã«ã®ããã©ã«ãããŒãžã§ã³ãå«ãŸããŠããŸãã
ãã®ç¯ã§ã¯ãäžè¬çãªäœ¿çšæ³ã«ã€ããŠã®ã¿èª¬æããŸãã æ°å€ãã®ãªãã·ã§ã³ã®å®å
šãªèª¬æã«ã€ããŠã¯ã mplayer(1) ã®ããã¥ã¢ã«ã«èšèŒãããŠããŸãã
[.filename]#testfile.avi# ãšãããã¡ã€ã«ãåçããã«ã¯ã以äžã®äŸã®ããã«ã `-vo` ãšãšãã«ã ãããªã€ã³ã¿ãã§ãŒã¹ãæå®ããŠãã ããã
[source,shell]
....
% mplayer -vo xv testfile.avi
....
[source,shell]
....
% mplayer -vo sdl testfile.avi
....
[source,shell]
....
% mplayer -vo x11 testfile.avi
....
[source,shell]
....
# mplayer -vo dga testfile.avi
....
[source,shell]
....
# mplayer -vo 'sdl:dga' testfile.avi
....
ãããªåçã®çžå¯Ÿçæ§èœã¯å€ãã®èŠå ã«äŸåãã ããŒããŠã§ã¢ã«å¿ããŠèããå€ãããšæãããã®ã§ã ãããã®ãªãã·ã§ã³ããã¹ãŠè©ŠããŠã¿ã䟡å€ã¯ããã§ãããã
DVD ãåçããã«ã¯ã [.filename]#testfile.avi# ã `dvd://_N_ -dvd-device _DEVICE_` ã«çœ®ãæããŠãã ããã <N> ã«ã¯åçããã¿ã€ãã«çªå·ãã _DEVICE_ 㯠DVD ã®ããã€ã¹ããŒããæå®ããŸãã ããšãã°ã[.filename]#/dev/dvd# ãã 2 çªç®ã®ã¿ã€ãã«ãåçããã«ã¯ä»¥äžã®ããã«ããŸãã
[source,shell]
....
# mplayer -vo xv dvd://3 -dvd-device /dev/dvd
....
[NOTE]
====
ããã©ã«ãã® DVD ããã€ã¹ã¯ã MPlayer port ã®æ§ç¯æã« `WITH_DVD_DEVICE=/path/to/desired/device` ã远å ããããšã§ã§å®çŸ©ã§ããŸãã ããã©ã«ãã§ã¯ãããã€ã¹ã¯ [.filename]#/dev/cd0# ã§ãã 詳现ã¯ãã® port ã® [.filename]#Makefile.options# ãã芧ãã ããã
====
忢ãäŒæ¢ã åçãªã©ãããã«ã¯ããŒãã€ã³ãã£ã³ã°ã䜿ã£ãŠãã ããã ããŒãã€ã³ãã£ã³ã°ã®äžèЧãèŠãã«ã¯ã`mplayer -h` ãå®è¡ãããããããã¯ãmplayer(1) ãèªãã§ãã ããã
åçã«é¢ãã远å ã®ãªãã·ã§ã³ããããŸãã å
šç»é¢ã¢ãŒãã«ãã `-fs -zoom` ãªãã·ã§ã³ãšã æ§èœãåäžããã `-framedrop` ãªãã·ã§ã³ã§ãã
ãã䜿çšãããªãã·ã§ã³ã«ã€ããŠã¯ãåãŠãŒã¶ã® [.filename]#.mplayer/config# ã«ä»¥äžã®ããã«è¿œå ããŠãã ããã
[.programlisting]
....
vo=xv
fs=yes
zoom=yes
....
`mplayer` ã䜿ã£ãŠã DVD ã¿ã€ãã«ã [.filename]#.vob# ã«æœåºã§ããŸãã DVD ãã 2 çªç®ã®ã¿ã€ãã«ããã³ãããã«ã¯æ¬¡ã®ããã«ããŸãã
[source,shell]
....
# mplayer -dumpstream -dumpfile out.vob dvd://2 -dvd-device /dev/dvd
....
åºåããã [.filename]#out.vob# ãã¡ã€ã«ã¯ MPEG 圢åŒã§ãã
UNIX(R) ãããªã«ã€ããŠã é«ã¬ãã«ã®ããŠããŠãåŸãããšèããŠããæ¹ã¯ link:http://www.mplayerhq.hu/DOCS/[mplayerhq.hu/DOCS] ãã芧ãã ãããæè¡çãªæ
å ±ããããŸãã ãã®ããã¥ã¡ã³ãã¯ã ãã°ãå ±åããåã«ãèªãã¹ããã®ã§ãã
`mencoder` ã䜿ãåã«ãlink:http://www.mplayerhq.hu/DOCS/HTML/en/mencoder.html[mplayerhq.hu/DOCS/HTML/en/mencoder.html] ãèªãã§ãªãã·ã§ã³ã«æ
£ããŠããã®ã¯ããèãã§ãã å質åäžãäœãããã¬ãŒãã圢åŒå€æãããæ¹æ³ãç¡æ°ã«ãããŸãã ãããã®èŠçŽ ã®èª¿ç¯å
·åã§ãæ§èœãè¯ãã£ããæªãã£ãããããªã©ã çµæã«éããåºããããããŸããã ã³ãã³ãã©ã€ã³ãªãã·ã§ã³ãäžé©åã«çµåãããšã `mplayer` ã§ããåçã§ããªãåºåãã¡ã€ã«ãäœæããŠããŸããŸãã
ã¯ããã¯åçŽãªãã¡ã€ã«ã®ã³ããŒã§ãã
[source,shell]
....
% mencoder input.avi -oac copy -ovc copy -o output.avi
....
ãããã£ãŠãåã«ãã¡ã€ã«ãæœåºããããšãã«ã¯ã `mplayer` ã« `-dumpfile` ãã€ããŸãã
[.filename]#input.avi# ãé³å£°ã« MPEG3 ãšã³ã³ãŒãã䜿çšã㊠MPEG4 ã³ãŒããã¯ã«å€æããã«ã¯ããŸãæåã« package:audio/lame[] port ãã€ã³ã¹ããŒã«ããŠãã ããã ã©ã€ã»ã³ã¹ã®å¶éã«ãããpackage ã¯å©çšã§ããŸããã ã€ã³ã¹ããŒã«ãããã以äžã®ããã«å
¥åããŠãã ããã
[source,shell]
....
% mencoder input.avi -oac mp3lame -lameopts br=192 \
-ovc lavc -lavcopts vcodec=mpeg4:vhq -o output.avi
....
ãã㯠`mplayer` ã `xine` ãšãã£ãã¢ããªã±ãŒã·ã§ã³ã§åçå¯èœãªåºåãã¡ã€ã«ãäœæããŸãã
DVD ã¿ã€ãã«ãçŽæ¥åãšã³ã³ãŒãããããã«ã¯ã äžèšã®ã³ãã³ãã©ã€ã³ã® [.filename]#input.avi# ã `dvd://1 -dvd-device /dev/dvd` ã«çœ®ãæããŠã `root` æš©éã§å®è¡ããŸãã æåŸ
ããçµæãåŸãã«ã¯äœåºŠãç¹°ãè¿ãããšã«ãªãã®ã§ã ãããã«ã¿ã€ãã«ããã¡ã€ã«ã«ãã³ãããŠã ãã¡ã€ã«ã«å¯ŸããŠäœæ¥ããããšãããããããŸãã
[[video-xine]]
==== xine ãããªãã¬ã€ã€
xine ã¯ã åå©çšå¯èœãªåºæ¬ã©ã€ãã©ãªãšã ãã©ã°ã€ã³ã§æ¡åŒµã§ããå®è¡å¯èœãªã¢ãžã¥ãŒã«ãæäŸãããããªãã¬ã€ã€ã§ãã package:multimedia/xine[] package ãŸã㯠port ããã€ã³ã¹ããŒã«ã§ããŸãã
å®çšäžãxine ã䜿çšããã«ã¯é«éãªãããªã«ãŒããšãšãã«é«é㪠CPU ããããã ãŸãã¯ãããªã«ãŒãã XVideo æ¡åŒµã«å¯Ÿå¿ããŠããå¿
èŠããããŸãã XVideo ã€ã³ã¿ãã§ãŒã¹ãšãšãã« xine ãããªãã¬ã€ã€ã䜿ãã®ãæè¯ã§ãã
ããã©ã«ãã§ã¯ãxine ãã¬ã€ã€ã¯ GUI ä»ãã§èµ·åããã§ãããã ã¡ãã¥ãŒã䜿çšããŠç¹å®ã®ãã¡ã€ã«ãéãããšãã§ããŸãã
xine ã¯ã åçãããã¡ã€ã«åãæå®ããããšã§ã ã³ãã³ãã©ã€ã³ããå®è¡ããããšãã§ããŸãã
[source,shell]
....
% xine -g -p mymovie.avi
....
link:http://www.xine-project.org/faq[xine-project.org/faq] ã«ã¯ãããå€ãã®æ
å ±ããã©ãã«ã·ã¥ãŒãã£ã³ã°ããããŸãã
[[video-ports-transcode]]
==== Transcode ãŠãŒãã£ãªãã£
Transcode ã¯ã ãããªããã³ãªãŒãã£ãªãã¡ã€ã«ãåãšã³ã³ãŒãããããã®ããŒã«äžåŒã§ãã Transcode ã䜿ãã°ãstdin/stdout ã¹ããªãŒã ã€ã³ã¿ãã§ãŒã¹ãšãšãã«ã³ãã³ãã©ã€ã³ããŒã«ãçšããããšã§ã ãããªãã¡ã€ã«ã®çµ±åããå£ãããã¡ã€ã«ã®ä¿®åŸ©ãã§ããŸãã
FreeBSD ã§ã¯ãTranscode ã¯ã package:multimedia/transcode[] package ããã㯠port ããã€ã³ã¹ããŒã«ã§ããŸãã å€ãã®ãŠãŒã¶ã¯ port ããã³ã³ãã€ã«ããããšã奜ã¿ãŸãã port ã§ã¯ã ã³ã³ãã€ã«ã§æå¹ã«ãããµããŒããã³ãŒããã¯ãæå®ããã³ã³ãã€ã«ãªãã·ã§ã³ã®ã¡ãã¥ãŒãå©çšã§ããããã§ãã ãªãã·ã§ã³ãéžæããªããšãTranscode ã¯ããã®åœ¢åŒããšã³ã³ãŒãåºæ¥ãªãã§ãããã ç¢å°ããŒãšã¹ããŒã¹ããŒã䜿ã£ãŠã å¿
èŠãšãããã©ãŒããããéžæããŠãã ããã éžæãçµãã£ããã kbd:[Enter] ãæŒããŠãport ã®ã³ã³ãã€ã«ãšã€ã³ã¹ããŒã«ãç¶ããŠãã ããã
ãã®äŸã§ã¯ãDivX ãã¡ã€ã«ã PAL MPEG-1 (PAL VCD) ã«å€æãã䜿çšäŸã瀺ããŸãã
[source,shell]
....
% transcode -i input.avi -V --export_prof vcd-pal -o output_vcd
% mplex -f 1 -o output_vcd.mpg output_vcd.m1v output_vcd.mpa
....
äœæããã MPEG ãã¡ã€ã«ã [.filename]#output_vcd.mpg# ã¯ã MPlayer ã䜿ã£ãŠåçã§ããŸãã ãŸããpackage:multimedia/vcdimager[] ããã³ package:sysutils/cdrdao[] ãšãã£ããŠãŒãã£ãªãã£ã䜿ã£ãŠã ãã¡ã€ã«ã CD ã¡ãã£ã¢ã«æžã蟌ãããšã§ãã㪠CD ãäœæã§ããŸãã
`transcode` ã®ããã¥ã¢ã«ããŒãžã«å ããlink:http://www.transcoding.org/cgi-bin/transcode[transcoding.org/cgi-bin/transcode] ãããæŽãªãæ
å ±ã䜿çšäŸãåŸãŠãã ããã
[[tvcard]]
== TV ã«ãŒãã®èšå®
TV ã«ãŒãã䜿çšããããšã§ã TV æŸéãã³ã³ãã¥ãŒã¿ã§èŠãããšãã§ããŸãã ãããã®å€ãã®ã«ãŒã㯠RCA ãŸã㯠S-video å
¥å端åãåããŠããã FM ã©ãžãªãã¥ãŒããè£
åããã«ãŒãããããŸãã
FreeBSD ã¯ãBrooktree Bt848/849/878/879 ããããªãã£ããã£ãããã«æ¡çšãã PCI TV ã«ãŒãã« man:bktr[4] ãã©ã€ãã§å¯Ÿå¿ããŠããŸãã ãã®ãã©ã€ãã¯ãã»ãšãã©ã® Pinnacle PCTV ãããªã«ãŒãã«å¯Ÿå¿ããŠããŸãã TV ã«ãŒãã賌å
¥ããåã«ã察å¿ããŠãããã¥ãŒãã®äžèЧã«ã€ããŠã man:bktr[4] ãåç
§ããŠãã ããã
=== ãã©ã€ããèªã¿èŸŒã
ã«ãŒãã䜿çšããã«ã¯ãman:bktr[4] ãã©ã€ããèªã¿èŸŒãå¿
èŠããããŸãã èµ·åæã«èªåçã«èªã¿èŸŒãããã«ã¯ã [.filename]#/boot/loader.conf# ã«ä»¥äžã®è¡ã远å ããŠãã ããã
[.programlisting]
....
bktr_load="YES"
....
ãããã¯ãã«ã¹ã¿ã ã«ãŒãã«ã« TV ãããªã«ãŒããžã®ãµããŒããéçã«çµã¿èŸŒãããšãã§ããŸãã ãã®å Žåã«ã¯ã 次ã®è¡ãã«ãŒãã«ã³ã³ãã£ã®ã¥ã¬ãŒã·ã§ã³ãã¡ã€ã«ã«è¿œå ããŠãã ããã
[.programlisting]
....
device bktr
device iicbus
device iicbb
device smbus
....
ã«ãŒãã³ã³ããŒãã³ã㯠I2C ãã¹çµç±ã§é£çµãããŠããããã man:bktr[4] ãã©ã€ãã«å ããŠãããã®ããã€ã¹ãå¿
èŠã«ãªããŸãã ç·šéãããæ°ããã«ãŒãã«ãæ§ç¯ããã€ã³ã¹ããŒã«ããŸãã
ãã¥ãŒããé©åã«æ€åºããããã©ããã確èªããããã ã·ã¹ãã ãåèµ·åããŠãã ããã èµ·åæã®ã¡ãã»ãŒãžã« TV ã«ãŒãã以äžã®ããã«èªèãããã§ãããã
[.programlisting]
....
bktr0: <BrookTree 848A> mem 0xd7000000-0xd7000fff irq 10 at device 10.0 on pci0
iicbb0: <I2C bit-banging driver> on bti2c0
iicbus0: <Philips I2C bus> on iicbb0 master-only
iicbus1: <Philips I2C bus> on iicbb0 master-only
smbus0: <System Management Bus> on bti2c0
bktr0: Pinnacle/Miro TV, Philips SECAM tuner.
....
ãããã®ã¡ãã»ãŒãžã¯ããŒããŠã§ã¢ã«å¿ããŠç°ãªããŸãã å¿
èŠã§ããã°ãman:sysctl[8] ãã ã«ãŒãã«ã³ã³ãã£ã®ã¥ã¬ãŒã·ã§ã³ãã¡ã€ã«ãªãã·ã§ã³ã§ã æ€ç¥ãããããã€ãã®ãã©ã¡ãŒã¿ã倿Žã§ããŸãã ããšãã°ããã¥ãŒãã Philips SECAM ãã¥ãŒããšããŠæ€ç¥ãããããã«ããã«ã¯ã ã«ãŒãã«ã³ã³ãã£ã®ã¥ã¬ãŒã·ã§ã³ãã¡ã€ã«ã«ä»¥äžã®è¡ã远å ããŸãã
[.programlisting]
....
options OVERRIDE_TUNER=6
....
ãŸãã¯ãçŽæ¥ man:sysctl[8] ã䜿çšããŠå€æŽããŸãã
[source,shell]
....
# sysctl hw.bt848.tuner=6
....
å©çšå¯èœãª man:sysctl[8] ãã©ã¡ãŒã¿ããã³ã«ãŒãã«ãªãã·ã§ã³ã«ã€ããŠã¯ man:bktr[4] ãåç
§ããŠãã ããã
=== 䟿å©ãªã¢ããªã±ãŒã·ã§ã³
TV ã«ãŒãã䜿çšããããã«ã¯ã 以äžã®ã¢ããªã±ãŒã·ã§ã³ã®äžã€ãã€ã³ã¹ããŒã«ããå¿
èŠããããŸãã
* package:multimedia/fxtv[] ã¯ãŠã£ã³ããŠå
ã« TV æ åãæ ããŸãã ç»å/é³å£°/ãããªãåã蟌ãããšãã§ããŸãã
* package:multimedia/xawtv[] ãåæ§ã®æ©èœãæã£ã TV ã¢ããªã±ãŒã·ã§ã³ã§ãã
* package:audio/xmradio[] 㯠TV ã«ãŒãã«æèŒããã FM ã©ãžãªãã¥ãŒãã䜿çšããããã®ã¢ããªã±ãŒã·ã§ã³ã§ãã
ä»ã«ãå€ãã®ã¢ããªã±ãŒã·ã§ã³ã FreeBSD ã® Ports Collection ã«åé²ãããŠããŸãã
=== ãã©ãã«ã·ã¥ãŒãã£ã³ã°
TV ã«ãŒãã«é¢ããåé¡ãèµ·ãããšãã«ã¯ãman:bktr[4] ãæ¬åœã«ãããªãã£ããã£ãããããã³ãã¥ãŒãã«å¯Ÿå¿ããŠãããã ãªãã·ã§ã³ãæ£ããèšå®ãããŠãããã©ããããŸã確èªããŠãã ããã TV ã«ãŒãã«é¢ãããµããŒãã質åã«é¢ããŠã¯ã {freebsd-multimedia} ã¡ãŒãªã³ã°ãªã¹ããåç
§ããŠãã ããã
[[mythtv]]
== MythTV
MythTV ã¯ãåºã䜿ãããŠãããªãŒãã³ãœãŒã¹ã® Personal Video Recorder (PVR) ã¢ããªã±ãŒã·ã§ã³ã§ãã ãã®ç¯ã§ã¯ãFreeBSD ã« MythTV ãã€ã³ã¹ããŒã«ãã èšå®ããæ¹æ³ã«ã€ããŠèª¬æããŸãã MythTV ã®äœ¿çšæ³ã«é¢ããããè©³çŽ°ãªæ
å ±ã«ã€ããŠã¯ãlink:http://www.mythtv.org/wiki/[mythtv.org/wiki] ãã芧ãã ããã
MythTV ã¯ãããã³ããšã³ãããã³ããã¯ãšã³ããå¿
èŠãšããŸãã ãããã¯ãåãã·ã¹ãã äžã§ãã ç°ãªãã³ã³ãã¥ãŒã¿äžã§ãåããããšãå¯èœã§ãã
ããã³ããšã³ãã«ã€ããŠã¯ã package:multimedia/mythtv-frontend[] package ãŸã㯠port ãã FreeBSD ã«ã€ã³ã¹ããŒã«ã§ããŸãã crossref:x11[x11,X Window System] ã§èª¬æãããŠããããã«ã Xorg ãã€ã³ã¹ããŒã«ããŠèšå®ããå¿
èŠããããŸãã ãã®ã·ã¹ãã 㯠X-Video Motion Compensation (XvMC) ã«å¯Ÿå¿ãã ãªãã·ã§ã³ãšããŠãLinux Infrared Remote Control (LIRC)-äºæã®ãªã¢ãŒãã«å¯Ÿå¿ãããããªã«ãŒããæã£ãŠããããšãçæ³çã§ãã
FreeBSD ã«ããã¯ãšã³ããšããã³ããšã³ãã®äž¡æ¹ãã€ã³ã¹ããŒã«ããã«ã¯ã package:multimedia/mythtv[] package ãŸã㯠port ã䜿ã£ãŠãã ããã MySQL(TM) ããŒã¿ããŒã¹ãµãŒããå¿
èŠãšãªããŸããã èªåçã«äŸåã§ã€ã³ã¹ããŒã«ãããŸãããªãã·ã§ã³ã§ã ãã¥ãŒãã«ãŒããšé²é³ããããŒã¿ãä¿åããããã®ã¹ãã¬ãŒãžãå¿
èŠã§ãã
=== ããŒããŠã§ã¢
MythTV ã¯ã ãšã³ã³ãŒãããã¥ãŒããªã©ã®ãããªå
¥åããã€ã¹ãžã®ã¢ã¯ã»ã¹ã« Video for Linux (V4L) ãçšããŸãã FreeBSD ã§ã¯ãUSB DVB-S/C/T ã«ãŒãã«ãããŠæãããåäœããŸãã ãªããªãã°ããã®ã«ãŒãã¯ã V4L ãŠãŒã¶ã©ã³ãã¢ããªã±ãŒã·ã§ã³ãæäŸãã package:multimedia/webcamd[] package ãŸã㯠port ã«ããè¯ããµããŒããããŠããããã§ãã webcamd ã«ãã察å¿ããŠãã Digital Video Broadcasting (DVB) ã«ãŒãã¯ãMythTV ã§åäœããã¯ãã§ãã åäœããããšãç¥ãããŠããã«ãŒãã®äžèЧã link:http://wiki.freebsd.org/WebcamCompat[wiki.freebsd.org/WebcamCompat] ã«ãããŸãã Hauppauge ã«ãŒãã®ãã©ã€ãããŸãã package:multimedia/pvr250[] ããã³ package:multimedia/pvrxxx[] port ãšããŠå©çšå¯èœã§ããã æšæºçã§ã¯ãªããã©ã€ãã®ã€ã³ã¿ãã§ãŒã¹ãæäŸããŠããã 0.23 ããåŸã® MythTV ã§ã¯åäœããŸããã ã©ã€ã»ã³ã¹ã®å¶éã«ãããpackage ã¯å©çšã§ããŸããã ãã®ããããããã® ports ã¯ã³ã³ãã€ã«ãããªããã°ãªããŸããã
link:http://wiki.freebsd.org/HTPC[wiki.freebsd.org/HTPC] ããŒãžã¯ãDVB ãã©ã€ãã®ãã¹ãŠã®äžèЧãæäŸããŠããŸãã
=== MythTV ããã¯ãšã³ãã®èšå®
ãã€ã㪠package ã䜿ã£ãŠ MythTV ãã€ã³ã¹ããŒã«ããŠãã ããã
[source,shell]
....
# pkg install mythtv
....
ãããã¯ãPorts Collection ããã€ã³ã¹ããŒã«ããã«ã¯ã 以äžã®ããã«å®è¡ããŠãã ããã
[source,shell]
....
# cd /usr/ports/multimedia/mythtv
# make install
....
ã€ã³ã¹ããŒã«ãçµãã£ããã MythTV ããŒã¿ããŒã¹ãèšå®ããŠãã ããã
[source,shell]
....
# mysql -uroot -p < /usr/local/share/mythtv/database/mc.sql
....
ãã®åŸãããã¯ãšã³ããèšå®ããŠãã ããã
[source,shell]
....
# mythtv-setup
....
æåŸã«ããã¯ãšã³ããèµ·åããŠãã ããã
[source,shell]
....
# sysrc mythbackend_enable=yes
# service mythbackend start
....
[[scanners]]
== ç»åã¹ãã£ã
FreeBSD ã§ã¯ãç»åã¹ãã£ãã«å¯Ÿããã¢ã¯ã»ã¹ã¯ SANE (Scanner Access Now Easy) ã«ãã£ãŠå®çŸãããŠããã FreeBSD ã® Ports Collection ã§æäŸãããŠããŸãã SANE ã¯ã¹ãã£ãã®ããŒããŠã§ã¢ã«ã¢ã¯ã»ã¹ããããã« FreeBSD ããã€ã¹ãã©ã€ãã䜿çšããŸãã
FreeBSD 㯠SCSI æ¥ç¶ããã³ USB æ¥ç¶ã®ã¹ãã£ãã®ã©ã¡ãã«ã察å¿ããŠããŸãã ã¹ãã£ãã®ã€ã³ã¿ãã§ãŒã¹ã«äŸåããŠãç°ãªããã©ã€ããå¿
èŠãšãªããŸãã èšå®ãå§ããåã«ã SANE ãã¹ãã£ãã«å¯Ÿå¿ããŠããããšã確èªããŠãã ããã 察å¿ããŠããã¹ãã£ãã«é¢ããŠã®ããè©³çŽ°ãªæ
å ±ã«ã€ããŠã¯ãlink:http://www.sane-project.org/sane-supported-devices.html[http://www.sane-project.org/sane-supported-devices.html] ãã芧ãã ããã
ãã®ç¯ã§ã¯ãFreeBSD ãã©ã®ããã«ããŠã¹ãã£ããèªèãããã«ã€ããŠèª¬æããŸãã ãã®åŸãFreeBSD ã·ã¹ãã äžã§ SANE ãèšå®ããŠäœ¿çšããæ¹æ³ã®æŠèŠã«ã€ããŠèª¬æããŸãã
[[scanners-kernel-usb]]
=== ã¹ãã£ãã®ç¢ºèª
[.filename]#GENERIC# ã«ãŒãã«ã«ã¯ USB ã¹ãã£ãã«å¯Ÿå¿ããããã®ããã€ã¹ãã©ã€ããæèŒãããŠããŸãã ã«ã¹ã¿ã ã«ãŒãã«ã䜿çšããéã«ã¯ã 以äžã®è¡ãã«ãŒãã«ã³ã³ãã£ã°ã¬ãŒã·ã§ã³ãã¡ã€ã«ã«ããããšã確èªããŠãã ããã
[.programlisting]
....
device usb
device uhci
device ohci
device ehci
device xhci
....
USB ã¹ãã£ããèªèããããã確èªããã«ã¯ã ã¹ãã£ããæ¥ç¶ããŠã`dmesg` ãå©çšãã ã·ã¹ãã ã¡ãã»ãŒãžãããã¡ã§ã ã¹ãã£ããèªèãããŠãããã©ããã確èªããŠãã ããã èªèãããŠãããã以äžã®ãããªã¡ãã»ãŒãžã衚瀺ãããŸãã
[source,shell]
....
ugen0.2: <EPSON> at usbus0
....
ãã®äŸã§ã¯ãEPSON Perfection(R) 1650 USB ã¹ãã£ãã [.filename]#/dev/ugen0.2# äžã§èªèãããŠããŸãã
ã¹ãã£ãã®ã€ã³ã¿ãã§ãŒã¹ã SCSI ã§ããã°ã ã©ã® SCSI ã³ã³ãããŒã©ããŒãã䜿çšããããç¥ãããšãéèŠã§ãã 䜿çšãã SCSI ãããã»ããã«ãã£ãŠã ã«ã¹ã¿ã ã«ãŒãã«ã³ã³ãã£ã°ã¬ãŒã·ã§ã³ãã¡ã€ã«ã調æŽããå¿
èŠããããŸãã [.filename]#GENERIC# ã«ãŒãã«ã¯ã äžè¬ã«äœ¿çšããã SCSI ã³ã³ãããŒã©ã®ã»ãšãã©ã«å¯Ÿå¿ããŠããŸãã [.filename]#/usr/src/sys/conf/NOTES# ãã¡ã€ã«ãèªãã§ã é©åãªè¡ãã«ãŒãã«ã³ã³ãã£ã°ã¬ãŒã·ã§ã³ãã¡ã€ã«ã«è¿œå ããŠãã ããã ãŸããSCSI ã¢ããã¿ãã©ã€ãã«å ããŠã 以äžã®è¡ãã«ã¹ã¿ã ã«ãŒãã«ã³ã³ãã£ã°ã¬ãŒã·ã§ã³ãã¡ã€ã«ã«èšè¿°ããå¿
èŠããããŸãã
[.programlisting]
....
device scbus
device pass
....
ããã€ã¹ãã¡ãã»ãŒãžãããã¡ã«åºåãããŠããããšã確èªããŠãã ããã
[source,shell]
....
pass2 at aic0 bus 0 target 2 lun 0
pass2: <AGFA SNAPSCAN 600 1.10> Fixed Scanner SCSI-2 device
pass2: 3.300MB/s transfers
....
ã·ã¹ãã ãèµ·åããéã«ã¹ãã£ãã®é»æºãå
¥ããŠãªããã°ã `camcontrol` ã䜿çšã㊠SCSI ãã¹ãã¹ãã£ã³ãã 以äžã®ããã«æåã§ããã€ã¹ãæ€åºãããããšãã§ããŸãã
[source,shell]
....
# camcontrol rescan all
Re-scan of bus 0 was successful
Re-scan of bus 1 was successful
Re-scan of bus 2 was successful
Re-scan of bus 3 was successful
....
ãããšãã¹ãã£ã㯠SCSI ããã€ã¹ã®äžèЧã«çŸããã§ãããã
[source,shell]
....
# camcontrol devlist
<IBM DDRS-34560 S97B> at scbus0 target 5 lun 0 (pass0,da0)
<IBM DDRS-34560 S97B> at scbus0 target 6 lun 0 (pass1,da1)
<AGFA SNAPSCAN 600 1.10> at scbus1 target 2 lun 0 (pass3)
<PHILIPS CDD3610 CD-R/RW 1.00> at scbus2 target 0 lun 0 (pass2,cd0)
....
FreeBSD ã«ããã SCSI ããã€ã¹ã«ã€ããŠã®è©³çްã¯ã man:scsi[4] ããã³ man:camcontrol[8] ãã芧ãã ããã
=== SANE ã®èšå®
SANE ã·ã¹ãã ã¯ã ããã¯ãšã³ã (package:graphics/sane-backends[]) ãçµç±ããŠã¹ãã£ãã«å¯Ÿããã¢ã¯ã»ã¹ãæäŸããŸãã ããã¯ãšã³ãã察å¿ããŠããç»åã¹ãã£ãã«ã€ããŠã¯ãlink:http://www.sane-project.org/sane-supported-devices.html[http://www.sane-project.org/sane-supported-devices.html] ãåç
§ããŠãã ããã ã°ã©ãã£ã«ã«ãªã¹ãã£ãã³ã°ã€ã³ã¿ãã§ãŒã¹ã¯ã Kooka (package:graphics/kooka[]) ãŸã㯠XSane (package:graphics/xsane[]) ãšãã£ããµãŒãããŒãã£è£œã®ã¢ããªã±ãŒã·ã§ã³ã«ãã£ãŠæäŸãããŠããŸãã SANE ã®ããã¯ãšã³ãã¯ã ã¹ãã£ãã詊ãã«ã¯ååã§ãã
ãã€ã㪠package ãããããã¯ãšã³ããã€ã³ã¹ããŒã«ããã«ã¯ã 以äžã®ããã«å®è¡ããŠãã ããã
[source,shell]
....
# pkg install sane-backends
....
ãããã¯ãPorts Collection ããã€ã³ã¹ããŒã«ããã«ã¯ã 以äžã®ããã«å®è¡ããŠãã ããã
[source,shell]
....
# cd /usr/ports/graphics/sane-backends
# make install clean
....
package:graphics/sane-backends[] port ãŸã㯠package ãã€ã³ã¹ããŒã«ãããã `sane-find-scanner` ã³ãã³ãã䜿çšããŠã SANE ã·ã¹ãã ã§æ€åºãããŠããã¹ãã£ãã確èªããŠãã ããã
[source,shell]
....
# sane-find-scanner -q
found SCSI scanner "AGFA SNAPSCAN 600 1.10" at /dev/pass3
....
ãã®åºåããã ã¹ãã£ãã€ã³ã¿ãã§ãŒã¹ã®çš®é¡ãš ã·ã¹ãã ã«æ¥ç¶ãããŠããã¹ãã£ãã䜿çšããããã€ã¹ããŒããããããŸãã ãã³ãåã補åã®ã¢ãã«åã¯è¡šç€ºãããªãããç¥ããŸããã
[NOTE]
====
ããã€ãã® USB ã¹ãã£ãã§ã¯ãã¡ãŒã ãŠã§ã¢ãèªã¿èŸŒãå¿
èŠãããå ŽåããããŸãã 詳现ã«ã€ããŠã¯ãsane-find-scanner(1) ããã³ sane(7) ãåç
§ããŠãã ããã
====
次ã«ãã¹ãã£ããããã³ããšã³ãã§èªèãããã調ã¹ãŠãã ããã SANE ã®ããã¯ãšã³ãã«ã¯ `scanimage` ãä»å±ããŸãã ãã®ã³ãã³ãã䜿çšãããšã ããã€ã¹ã®äžèЧã衚瀺ãããç»åãååŸããããšãã§ããŸãã ã¹ãã£ãããã€ã¹ã®äžèЧã衚瀺ããã«ã¯ã `-L` ãªãã·ã§ã³ã䜿ã£ãŠãã ããã 以äžã®æåã®äŸã¯ãSCSI ã¹ãã£ãçšã®ãã®ã§ã 次ã®äŸã¯ãUSB ã¹ãã£ãçšã®ãã®ã§ãã
[source,shell]
....
# scanimage -L
device `snapscan:/dev/pass3' is a AGFA SNAPSCAN 600 flatbed scanner
# scanimage -L
device 'epson2:libusb:/dev/usb:/dev/ugen0.2' is a Epson GT-8200 flatbed scanner
....
2 çªç®ã®åºåã«ãããŠã `epson2` ãããã¯ãšã³ãåã§ã `libusb:000:002` 㯠`/dev/ugen0.2` ãæå³ãã ã¹ãã£ãã䜿çšããããã€ã¹ããŒãã§ãã
`scanimage` ãã¹ãã£ãã®èªèã«å€±æããå Žåã«ã¯ã 以äžã®ãããªã¡ãã»ãŒãžã衚瀺ãããŸãã
[source,shell]
....
# scanimage -L
No scanners were identified. If you were expecting something different,
check that the scanner is plugged in, turned on and detected by the
sane-find-scanner tool (if appropriate). Please read the documentation
which came with this software (README, FAQ, manpages).
....
ãã®ãããªå Žåã«ã¯ã[.filename]#/usr/local/etc/sane.d/# ã«ããããã¯ãšã³ãã®èšå®ãã¡ã€ã«ãç·šéããŠã 䜿çšããã¹ãã£ãããã€ã¹ãèšå®ããŠãã ããã äŸãã°ãèªèãããªãã£ãã¹ãã£ãã®ã¢ãã«ãã EPSON Perfection(R) 1650 ã§ã`epson2` ããã¯ãšã³ãã䜿ã£ãŠããã®ã§ããã°ã [.filename]#/usr/local/etc/sane.d/epson2.conf# ãç·šéããŠãã ããã ç·šéäœæ¥ãè¡ãéã«ã¯ã 䜿çšããã€ã³ã¿ãã§ãŒã¹ãšããã€ã¹ããŒããæå®ããè¡ã远å ããŸãã ãã®äŸã§ã¯ã以äžã®è¡ã远å ããŸãã
[.programlisting]
....
usb /dev/ugen0.2
....
ç·šéãä¿åãã é©åãªããã¯ãšã³ãåãšããã€ã¹ããŒãã§ã¹ãã£ããèªèããããã©ããã確èªããŠãã ããã
[source,shell]
....
# scanimage -L
device 'epson2:libusb:000:002' is a Epson GT-8200 flatbed scanner
....
`scanimage -L` ãå®è¡ããŠã¹ãã£ããèªèãããããšããããã°ãèšå®ã¯çµäºã§ãã ã¹ãã£ãã䜿çšããæºåãã§ããŸããã
`scanimage` ã䜿çšããŠã³ãã³ãã©ã€ã³ããç»åãååŸããããšãã§ããŸããã GUI ã䜿çšããŠç»åãååŸã§ããããšãæãŸããã§ãããã Kooka ã xsane ãšãã£ãã¢ããªã±ãŒã·ã§ã³ã¯ã åºã䜿ãããŠããã¹ãã£ãã³ã°ããã³ããšã³ãã§ãã ãããã«ã¯ãããŸããŸãªã¹ãã£ãã³ã°ã¢ãŒãã è²è£æ£ããããã¹ãã£ã³ãªã©å
é²çãªæ©èœããããŸãã XSane ã¯ãGIMP ã®ãã©ã°ã€ã³ãšããŠäœ¿çšããããšãã§ããŸãã
=== ã¹ãã£ãã®èš±å¯å±æ§
ã¹ãã£ãã«ã¢ã¯ã»ã¹ããã«ã¯ã ãŠãŒã¶ã¯ã¹ãã£ãã䜿çšããããã€ã¹ããŒããžã®èªã¿èŸŒã¿æš©éãšæžãèŸŒã¿æš©éãå¿
èŠã§ãã ä»åã®äŸã§ã¯ãUSB ã¹ãã£ã㯠[.filename]#/dev/ugen0.2# ããã€ã¹ããŒãã䜿çšããŠããŸãã ãã®ããã€ã¹ããŒãã¯ã [.filename]#/dev/usb/0.2.0# ãžã®ã·ã³ããªãã¯ãªã³ã¯ã§ã ã·ã³ããªãã¯ãªã³ã¯ãšããã€ã¹ããŒãã¯ã ãããã `wheel` ããã³ `operator` ã°ã«ãŒããææããŠããŸãã ãŠãŒã¶ããããã®ã°ã«ãŒãã«å ãããšã ã¹ãã£ãã䜿çšã§ããããã«ãªããŸããã ãŠãŒã¶ã `wheel` ã«è¿œå ããããšã¯ãã»ãã¥ãªãã£ã®èгç¹ãããå§ãã§ããŸããã è¯ãæ¹æ³ã¯ã ã¹ãã£ãããã€ã¹ã«ã¢ã¯ã»ã¹ã§ããã°ã«ãŒããäœæããããšã§ãã
ãã®äŸã§ã¯ã`_usb_` ãšããååã®ã°ã«ãŒããäœæããŸãã
[source,shell]
....
# pw groupadd usb
....
ãã®åŸãã·ã³ããªãã¯ãªã³ã¯ [.filename]#/dev/ugen0.2# ããã³ã[.filename]#/dev/usb/0.2.0# ããã€ã¹ããŒãã«å¯ŸããŠã `usb` ã°ã«ãŒããå©çšã§ããããã«æžã蟌ã¿ã®èš±å¯å±æ§ `0660` ãŸã㯠`0664` ãèšå®ããŠãã ããã [.filename]#/etc/devfs.rules# ã«æ¬¡ã®è¡ã远å ããã°èšå®ã§ããŸãã
[.programlisting]
....
[system=5]
add path ugen0.2 mode 0660 group usb
add path usb/0.2.0 mode 0666 group usb
....
[NOTE]
====
ããã€ã¹ã远å ãããå€ãããšã«ããã ããã€ã¹ããŒããå€ããããšããããŸãã ãã®ããããã¹ãŠã® USB ããã€ã¹ã«ã¢ã¯ã»ã¹ãããå Žåã«ã¯ã 代ããã«ä»¥äžã®ã«ãŒã«ã»ããã䜿ã£ãŠãã ããã
[.programlisting]
....
[system=5]
add path 'ugen*' mode 0660 group usb
add path 'usb/*' mode 0666 group usb
....
====
ãã®ãã¡ã€ã«ã®è©³çްã«ã€ããŠã¯ã man:devfs.rules[5] ãåç
§ããŠãã ããã
ã€ãã«ã/etc/rc.conf ã§ã«ãŒã«ã»ãããæå¹ã«ããŠãã ããã
[.programlisting]
....
devfs_system_ruleset="system"
....
ãããŠãman:devfs[8] ã·ã¹ãã ãåèµ·åããŠãã ããã
[source,shell]
....
# service devfs restart
....
æåŸã«ãã¹ãã£ããå©çšãããŠãŒã¶ã `_usb_` ã°ã«ãŒãã«è¿œå ããŠã¹ãã£ããå©çšã§ããããã«ããŠãã ããã
[source,shell]
....
# pw groupmod usb -m joe
....
詳现ã«ã€ããŠã¯ãman:pw[8] ãã芧ãã ããã