2016年3月25日 星期五

[RPi] 在 Jessie 上安裝 mencoder

transcoding 是將視訊檔案從一種格式到另一個,目的是不同平台和設備上可觀看的過程。

在 Linux 最常使用的是 MEncoder(MPlayer Encoder)。 這東西在 Raspbian Wheezy 可以直接用 apt 下載,可是升到 Raspbian Jessie 就不見了。

解決方法就是新增 apt 來源。
$ sudo vim /etc/apt/sources.list.d/deb-multimedia.org.list

新增兩個來源
deb http://www.deb-multimedia.org jessie main non-free
deb ftp://ftp.deb-multimedia.org jessie main non-free

更新再更新
$ sudo apt-get update
$ sudo apt-get install deb-multimedia-keyring
$ sudo apt-get update
這時候就可以快樂的安裝了
$ sudo apt-get install mplayer mencoder


剛剛發現即使安裝 mencoder 也不會再出現 command line 的工具了, 只好改用 avconv...

原本想執行的 script 為
$ mencoder -nosound -ovc lavc -lavcopts vcodec=mpeg4:aspect=4/3:vbitrate=8000000 -vf scale=640:480 -o timelapse.avi -mf type=jpeg:fps=4 mf://@stills.txt


大概會換成
$ avconv -y -r 4 -i image%04d.jpg -r 4 -vcodec libx264 -vf crop=640:480,scale=iw:ih timelapse.mp4


reference:
* How to install the transcoding tools on Debian 8 "Jessie"?
* Mencoder on jessie
* Creating a timelapse clip with avconv

2016年3月24日 星期四

2016年3月5日 星期六

[RPi] Direct register access on Raspberry

如果要直接控制 BCM 的晶片, 需要透過 mmap 將 register 的位置映射到記憶體

在 BCM2835 的 datasheet 中有記載 peripheral base address 和 gpio base address

但要注意的是, 以下 BCM2708_PERI_BASE 在 Pi 1 是長這樣
#define BCM2708_PERI_BASE        0x20000000
在 Pi 2 (BCM2836)是長這樣
#define BCM2708_PERI_BASE        0x3F000000
reference:
* RPi GPIO Code Samples