なので、apt-getまたはSynapticからbuild-essentialをインストールする。
$ sudo apt-get install build-essential
インストール後に/usr/include/ディレクトリを見ると、各種ヘッダファイルが納められていることが分かる。
参考:https://answers.launchpad.net/ubuntu/+faq/61
$ sudo apt-get install build-essential
$ ffmpeg -i broken_metadata.mp3 -acodec copy extracted_audio.mp3
[Desktop Entry]X-GNOME-Autostart-enabledのtrue/falseによって自動起動するか否かが設定される。設定画面ではチェックのON/OFFに反映されている。
Type=Application
Encoding=UTF-8
Version=1.0
Name=名前なし
Name[ja_JP]=Pidgin
Exec=/usr/bin/pidgin
X-GNOME-Autostart-enabled=true
Comment[ja_JP]=インスタントメッセンジャー
Comment=インスタントメッセンジャー
$ rm .recently-used.xbel要するに、最近開いたドキュメントの一覧を保存しているファイルにアクセスできなくしてしまう訳だ。
$ mkdir .recently-used.xbel
$ sudo apt-get install amarok本体だけでは肝心のmp3など音楽ファイルが再生できないので、Amarokが自動でlibxine1-ffmpegパッケージをインストールしてくれる筈なのだが、私の場合は手動でインストールした。つか、インストールしないと固まる固まる。
$ sudo apt-get install mtp-toolsこれは端末でMTPデバイスと通信出来るコマンドをいくつも提供してくれる。
mtp-albumart mtp-files mtp-newfolder mtp-thumb例えば、mtp-detectを使うと、MTPデバイスの詳細情報を検出してくれる。
mtp-albums mtp-folders mtp-newplaylist mtp-tracks
mtp-connect mtp-format mtp-playlists mtp-trexist
mtp-delfile mtp-getfile mtp-reset
mtp-detect mtp-getplaylist mtp-sendfile
mtp-emptyfolders mtp-hotplug mtp-sendtr
$sudo mtpfs /media/gigabeat/ -o allow_other(/media/gigabeatディレクトリは先に作成しておくこと)
$ gnome-open anyfile
apt-get source language-pack-gnome-ja-base -dでパッケージのソースコードをダウンロード出来ます。(-dオプションは--download-onlyで、ソースをDLしたあとコンパイルを行わないようにしています。)
$ sudo apt-get install emeseneパネルメニューのアプリケーションの追加と削除からもインストール出来ます。
$ sudo apt-get install poedit
/usr/sbin/pwmconfig: There are no pwm-capable sensor modules installed
/usr/sbin/pwmconfig: There are no pwm-capable sensor modules installedもしバグでないのなら、このメッセージが出るという事はM/Bがファン制御に対応していないということらしい。うーん。
$ sudo apt-get install p7zip-full lha-sjis rar unrar unace lcab cabextract
$ bin2iso input.bin output.iso
# apt-get install bin2iso
$ bchunk input.bin input.cue output.iso
#include <stdio.h>
#include <ncurses.h>
#include <locale.h>
#include <time.h>
#include <sys/time.h>
//screen size(row x col)
// 27x73
#define true 1
#define false 0
//for sleep command
#define DELAY 1000
#define UP 0
#define DOWN 1
#define MIKU_SIZE_ROW 17
#define MIKU_SIZE_COL 37
#define REAL_MIKU_SIZE_ROW 26
#define REAL_MIKU_SIZE_COL 47
//Negi ASCII Arts
char *negiUp[] = {
"くヽ l^i ",
" \\l l ",
" \\l ",
" \\ ",
" \\",
" \"
};
char *negiDown[] = {
" <\ ",
" \\ ",
"┌ ーーーーーー",
"└ ーーーーーー"
};
//Miku ASCII Arts
char *normal[] = {
" rへ ___ __ ",
" /: : : : : Y: :ヽ ",
" /: ./l: lヽ::ヽ: :ヽ ",
" //: /ノ l:ト、ヽ: :':: .', ",
" / l: / ○ 丶l ○ l: :ハ : : ',",
" _/: l: l@┌ ー┐ @l:/:l: : .',",
"/:::\ヽl \ │ │ /://l : :.i",
"{:::::::`T7└-ー┴‐< l: : l",
" `rーー┼ーー/l/l//_ヽ l : : :l",
" /: : : | /:/:l: Y:::l l : : :l",
" ,': : :/ /:/: : l:::l. l : : :.l",
" i : : く/レへ : l::::', ! : : : l",
" l : : :\:::::ヽイ::::〉 l : : : l",
" l : : : :ト、:::::>tjtjノ |: : : : l",
" ',: : : :/├ ー┤ |─ '\"| l : : : :l",
" ヽ : :/ l:::|l::::l ',: : ::,'",
" \:/ l:::l|:::l ヽ: : /"
};
char *cool[] = {
" rへ ___ __",
" /: : : : : Y: :ヽ",
" /: ./l: lヽ::ヽ: :ヽ",
" //: /\ l:ト /: :':: .',",
" / l: / ○ 丶l ○ l: :ハ : : ',",
" _/: l: l@ @l:/:l: : .',",
"/:::\ヽl \ /\ /://l : :.i",
"{:::::::`T7ヽ ̄ー-< l: : l",
" `rーー┼ーー/l/l//_ヽ l : : :l",
" /: : : | /:/:l: Y:::l l : : :l",
" ,': : :/ /:/: : l:::l. l : : :.l",
" i : : く/レへ : l::::', ! : : : l",
" l : : :\:::::ヽイ::::〉 l : : : l",
" l : : : :ト、:::::>tjtjノ |: : : : l",
" ',: : : :/├ ー┤ |─ '\"| l : : : :l",
" ヽ : :/ l:::|l::::l ',: : ::,'",
" \:/ l:::l|:::l ヽ: : /"
};
char *tired[] = {
" rへ ___ __ ",
" /: : : : : Y: :ヽ ",
" /: ./l: lヽ::ヽ: :ヽ ",
" //: /ノ l:ト、ヽ: :':: .', ",
" / l: / ○ 丶l ○ l: :ハ : : ',",
" _/: l: l@ @l:/:l: : .',",
"/:::\ヽl \ /\ /://l : :.i",
"{:::::::`T7ヽ ̄ー-< l: : l",
" `rーー┼ーー/l/l//_ヽ l : : :l",
" /: : : | /:/:l: Y:::l l : : :l",
" ,': : :/ /:/: : l:::l. l : : :.l",
" i : : く/レへ : l::::', ! : : : l",
" l : : :\:::::ヽイ::::〉 l : : : l",
" l : : : :ト、:::::>tjtjノ |: : : : l",
" ',: : : :/├ ー┤ |─ '\"| l : : : :l",
" ヽ : :/ l:::|l::::l ',: : ::,'",
" \:/ l:::l|:::l ヽ: : /"
};
char *sleep1[] = {
" rへ ___ __",
" /: : : : : Y: :ヽ",
" /: ./l: lヽ::ヽ: :ヽ",
" //: /ノ l:ト、ヽ: :':: .',",
" / l: / =丶l =l: :ハ : : ',",
" _/: l: l@┌ ー┐ @l:/:l: : .',",
"/:::\ヽl \ │ │ /://l : :.i",
"{:::::::`T7└--u┴‐< l: : l",
" `rーー┼ーー/l/l//_ヽ l : : :l",
" /: : : | /:/:l: Y:::l l : : :l",
" ,': : :/ /:/: : l:::l. l : : :.l",
" i : : く/レへ : l::::', ! : : : l",
" l : : :\:::::ヽイ::::〉 l : : : l",
" l : : : :ト、:::::>tjtjノ |: : : : l",
" ',: : : :/├ ー┤ |─ '\"| l : : : :l",
" ヽ : :/ l:::|l::::l ',: : ::,'",
" \:/ l:::l|:::l ヽ: : /"
};
char *sleep2[] = {
" rへ ___ __",
" /: : : : : Y: :ヽ",
" /: ./l: lヽ::ヽ: :ヽ",
" //: /ノ l:ト、ヽ: :':: .',",
" / l: / =丶l =l: :ハ : : ',",
" _/: l: l@┌ ー┐ @l:/:l: : .',",
"/:::\ヽl\ │ │ /://l : :.i",
"{:::::::`T7└--u┴‐< l: : l",
" `rーー┼ーー/l/l//_ヽ l : : :l",
" /: : : | /:/:l: Y:::l l : : :l",
",': : : / /:/: : l:::l. l : : :.l",
"i : : く/レへ : l::::',! : : : l",
"l : : : \:::::ヽイ::::〉l : : : l",
"l : : : : ト、:::::>tjtjノ |: : : : l",
"',: : : :/ ├ ー┤ |─ '\"| l : : : :l",
" ヽ : :/ l:::|l::::l ',: : ::,'",
" \:/ l:::l|:::l ヽ: : /"
};
char *realMiku[] = {
" ,.-.‐ . へ",
" {少'\" : : : 幻、\",
" /:/:: : : Y::i : :ヽ.",
" /:/N: iヽ: l_:_: :l: ハ",
" ,{:/:Lヾ{ 'Tヽ|::} ハ:: :i",
" /:ヽ:|心 、 ゛ .}'-:'/l: :!",
" /: : :>:ヽ ー;,イiTく l: : l",
" /: : :/ `≧ 令ーツー.、 l: : :l",
" /: : :/ r‐ f^小:::./ }l: : :l",
" /: : :/ j//./::::Y i / l: : :l",
" /: : :/ /:}/./:::::ll. 01! l: : :l",
" /: : :/ /://./:::::::! ̄: | l: : :l",
" /: : :/ /://./:::::::/|;;;;| l: : :l",
" /: : :/ /// ':::::::/ |;;;;| l: : :l",
" /: : :/ /':/ i:::::{ |;;;;| l: : :l",
" /: : ://:::/ i::::::\|;;;;;| l: : :l",
" /: : :/::::〈 i:::::::`!;;:;;;| l: : :l",
" / : ;〈:::::/ヽ/::::::::: |;;;;;;l l: : :l",
" /: :∧ ヽ:::/;;;;\::::::/ |;;;;;;| l: : :l",
" /: :/;;Y ゝ;;;;;:::;\::/;.;ィ|;;;;;;|. l: : :l",
",: : /、;lヽ√`ート::::,;r-Y\"..\"ィ|;;;;;;| |: : l",
"!: :′l>、| `ー- L_ ̄ i 斗 ´ |;;;;;;l.l: : l",
"l: :i ^|` ー - | ̄|_,.- ‐ 1ヽ;;;;;ノ l: : l",
" ',:l |;;;;;;:! l;;;;;;| ヒ!ヘハ! l: ,'",
" ゛:, |;;;;;:i l;;;;;;| } :/",
" ヾ:. |;;;;;:! l;;;:;;| /:/",
" |;;;;;! l;;;;;;| /'"
};
char *mikuLogo[] = {
" _ _",
" ∪ ∪",
" ┌─ ─┐┌ ─ ┐┌ ─ ─┐ ∩ __",
" └─ ./└_┐ |└┐┌┐┌┘│ └ ─ ┐/ |",
" // _||||┌┘└┘└┐└ ─ ─ ┘\/~||",
"//||//||||└ ─ ─┘┌ ─ ─ ┐ /|",
"|/|トゝ|||| ┌ ─ ,└ ─ ─ ┘ //",
" || |||| │ =)┌ ─ ─ ┐//",
" └┘ └┘└┘ └ ─ '└ ─ ┐//",
" HACHUNE MIKU |/",
};
//Lyrics
char *lyric0 = "あらっつぁっつぁ〜やりびだびりんらばりったんりんだんれんだんどぅ";
char *lyric1 = "まばりぱっぱーっぱりぱり ぱりりりびりびりすてんれんだんどぅ〜";
char *lyric2 = "やばりんらんてんだんでんあろ〜 わらば るぶるぶるぶるぶれいえぶ〜";
char *lyric3 = "ばりったんりんだんでんらんろ〜 たた たたたたとぅとぅでんやぶ〜";
char *lyric4 = "りんらんてんだんりんらんてんだん りんらんりんらんりんりんりりり";
//values
int nowNegiType = UP;
int sleepingType = UP;
int mikuRow;
int mikuCol;
void addLogo(int ha, int li, int vo){
int i;
if(ha){
for(i = 0; i < 10; i++){
mvaddstr(LINES - 14 + i, 0, mikuLogo[i]);
}
}
if(li){
for(i = 0; i < COLS; i++){
mvaddstr(LINES - 3, i, "-");
}
}
if(vo){
mvaddstr(LINES - 2, 2, "VOCALOID2");
}
}
void addAA(char *miku[]){
int i;
for(i = 0; i < MIKU_SIZE_ROW; i++){
mvaddstr(mikuRow + i,mikuCol,miku[i]);
}
}
void addLyric(char *lyric){
mvaddstr(LINES - 1, 5, lyric);
}
void addNegi(int type){
int i;
if(type == UP){
for(i = 0; i < 6; i++){
mvaddstr(mikuRow + i + 1, mikuCol - 11, negiUp[i]);
}
}else{ //DOWN
for(i = 0; i < 4; i++){
mvaddstr(mikuRow + i + 4, mikuCol - 14, negiDown[i]);
}
}
}
void mvAddNegi(int row, int col, int type){
int i;
if(type == UP){
for(i = 0; i < 6; i++){
mvaddstr(row + i, col, negiUp[i]);
}
}else{ //DOWN
for(i = 0; i < 4; i++){
mvaddstr(row + i, col, negiDown[i]);
}
}
}
void toggleSleepMiku(){
if(sleepingType == UP){
addAA(sleep1);
sleepingType = DOWN;
}else{
addAA(sleep2);
sleepingType = UP;
}
}
void toggleAddNegi(){
addNegi(nowNegiType);
if(nowNegiType == UP){
nowNegiType = DOWN;
}else{
nowNegiType = UP;
}
}
double getTimeOfDay_sec(){
struct timeval tv;
gettimeofday(&tv, NULL);
return tv.tv_sec + (double)tv.tv_usec*1e-6;
}
double getPassedTime(double startTime){
return (getTimeOfDay_sec() - startTime);
}
main(){
int i;
double passedTime;
double startTime;
int sleepTime;
int logoHa;
int logoLi;
int logoVo;
setlocale(LC_ALL,"");
initscr();
cbreak();
noecho();
mikuRow = LINES - MIKU_SIZE_ROW - 3;
mikuCol = COLS - MIKU_SIZE_COL - 1;
logoHa = false;
logoLi = false;
logoVo = true;
startTime = getTimeOfDay_sec();
sleepTime = 0;
//ここから動画の描画
//初期状態 VOCALOID2ロゴのみ
addLogo(false, false, true);
move(LINES - 1,COLS - 1);
refresh();
usleep(5500 * DELAY);
//ボーダーライン表示
for(i = 0; i < REAL_MIKU_SIZE_ROW; i++){
mvaddstr(LINES - REAL_MIKU_SIZE_ROW + i,
COLS - REAL_MIKU_SIZE_COL - 1,
realMiku[i]);
}
addLogo(true, false, true);
move(LINES - 1,COLS - 1);
refresh();
usleep(3500 * DELAY);
//初音ミク ロゴ登場
clear();
for(i = 0; i < REAL_MIKU_SIZE_ROW - 3; i++){
mvaddstr(LINES - REAL_MIKU_SIZE_ROW + i,
COLS - REAL_MIKU_SIZE_COL - 1,
realMiku[i]);
}
addLogo(true, true, true);
move(LINES - 1,COLS - 1);
refresh();
usleep(7000 * DELAY);
while(1){
clear();
passedTime = getPassedTime(startTime);
addLogo(true, true, true);
//ミク
if(passedTime <= 16.8){
//登場 休符
sleepTime = 100;
addAA(normal);
addNegi(UP);
}else if(passedTime <= 32.0){
//ネギ振り
sleepTime = 250;
addAA(normal);
toggleAddNegi();
}else if(passedTime <= 33.0){
//休符
sleepTime = 100;
addAA(normal);
addNegi(UP);
}else if(passedTime <= 48.5){
//ネギ振り
sleepTime = 250;
addAA(normal);
toggleAddNegi();
}else if(passedTime <= 49.0){
//休符
sleepTime = 100;
addAA(normal);
addNegi(UP);
}else if(passedTime <= 64.5){
//居眠り
sleepTime = 500;
toggleSleepMiku();
addNegi(UP);
}else if(passedTime <= 65.0){
//YO!!
sleepTime = 500;
mvaddstr(mikuRow - 1, mikuCol + 10, "!!!");
addAA(cool);
addNegi(UP);
addLyric(" YO!!!");
}else if(passedTime <= 80.0){
//激しい振り
sleepTime = 125;
addAA(cool);
toggleAddNegi();
}else if(passedTime <= 81.0){
//疲れ休符
sleepTime = 100;
addAA(tired);
addNegi(UP);
}else if(passedTime <= 96.0){
//疲れ振り
sleepTime = 250;
addAA(tired);
toggleAddNegi();
}else if(passedTime <= 97.0){
//りんらんりんらんりんらんりんらん
sleepTime = 125;
addAA(tired);
toggleAddNegi();
}else if(passedTime <= 113.0){
//ネギ振り
sleepTime = 250;
addAA(normal);
toggleAddNegi();
}else if(passedTime <= 114.0){
//休符
sleepTime = 100;
addAA(normal);
addNegi(UP);
}else if(passedTime <= 129.0){
//ネギ振り
sleepTime = 250;
addAA(normal);
toggleAddNegi();
}else if(passedTime <= 130.0){
//休符
sleepTime = 100;
addAA(normal);
addNegi(UP);
}else if(passedTime <= 145.0){
//居眠り
sleepTime = 500;
toggleSleepMiku();
addNegi(UP);
}else if(passedTime <= 145.1){
//ネギ落下 中段
sleepTime = 50;
addAA(sleep1);
mvAddNegi(mikuRow + 8, mikuCol - 13, DOWN);
}else if(passedTime <= 146.0){
//ネギ落下 中段
sleepTime = 50;
addAA(sleep1);
mvAddNegi(mikuRow + 13, mikuCol - 14, DOWN);
}else{
usleep(5000 * DELAY);
break;
}
//歌詞
if(passedTime <= 17.0){
//前奏
}else if(passedTime <= 20.0){
addLyric(lyric0);
}else if(passedTime <= 24.0){
addLyric(lyric1);
}else if(passedTime <= 29.0){
addLyric(lyric2);
}else if(passedTime <= 32.0){
addLyric(lyric3);
}else if(passedTime <= 37.0){
addLyric(lyric0);
}else if(passedTime <= 40.0){
addLyric(lyric1);
}else if(passedTime <= 45.0){
addLyric(lyric2);
}else if(passedTime <= 48.0){
addLyric(lyric3);
}else if(passedTime <= 81.0){
//間奏
}else if(passedTime <= 85.0){
addLyric(lyric0);
}else if(passedTime <= 89.0){
addLyric(lyric1);
}else if(passedTime <= 93.0){
addLyric(lyric2);
}else if(passedTime <= 97.0){
addLyric(lyric4);
}else if(passedTime <= 101.0){
addLyric(lyric0);
}else if(passedTime <= 105.0){
addLyric(lyric1);
}else if(passedTime <= 109.0){
addLyric(lyric2);
}else if(passedTime <= 113.0){
addLyric(lyric3);
}else if(passedTime <= 117.0){
addLyric(lyric0);
}else if(passedTime <= 121.0){
addLyric(lyric1);
}else if(passedTime <= 125.0){
addLyric(lyric2);
}else{
//do nothing
}
move(LINES - 1,COLS - 1);
refresh();
usleep(sleepTime * DELAY);
}
//終了
endwin();
}
user@machine:~$ echo $PS1
${debian_chroot:+($debian_chroot)}\u@\h:\w\$
user@machine:~$
$ PS1='${debian_chroot:+($debian_chroot)}\u@\h:\W\$'
$ ffmpeg -i input.mpeg -i input.mp3 -s 512x384 -vcodec h264 -b 300k -r 25.00 -acodec aac -ab 64k -ar 44100 output.mp4
$ ffmpeg -i input.mpeg -vcodec h264 -r 25.00 -b 500k -s 512x384 -pass 1 -passlogfile "./passlog" -an "./1pass.mp4"
$ ffmpeg -i input.mpeg -vcodec h264 -r 25.00 -b 500k -s 512x384 -pass 2 -passlogfile "./passlog" -i input.mp3 -acodec aac -ar 44100 -ab 64k "./2pass.mp4"
#include <ncurses.h>
main(){
initscr();
addstr("ほげほげ");
refresh();
usleep(1000000);
endwin();
}
#include <ncurses.h>
#include <locale.h>
main(){
setlocale(LC_ALL,"");
initscr();
addstr("ほげほげ");
refresh();
usleep(1000000);
endwin();
}
#/usr/bin/env ruby
loop do
print "\r・.・ y"
$stdout.flush
sleep 0.25
print "\r・.・_"
$stdout.flush
sleep 0.25
end