2009年10月13日星期二

Unbuntu下的ffmpeg

因為Ubuntu下的ffmpeg的package沒有將x264編譯進去,所以要重新編譯,步驟如下,備忘一下:

1 清理 ffmpeg 和x264相關的文件

sudo apt-get purge ffmpeg x264 libx264-dev


2.安裝一些庫文件



sudo apt-get update
sudo apt-get install build-essential subversion git-core checkinstall yasm texi2html libfaac-dev libfaad-dev libmp3lame-dev libsdl1.2-dev libtheora-dev libx11-dev libxvidcore4-dev zlib1g-dev


 



3.安裝x264



cd
git clone git://git.videolan.org/x264.git
cd x264
./configure
make
sudo checkinstall --fstrans=no --install=yes --pkgname=x264 --pkgversion "1:0.svn`date +%Y%m%d`-0.0ubuntu1" –default


4 安裝ffmpeg



cd
svn checkout svn://svn.ffmpeg.org/ffmpeg/trunk ffmpeg
cd ffmpeg
./configure --enable-gpl --enable-nonfree --enable-pthreads --enable-libfaac --enable-libfaad --enable-libmp3lame --enable-libtheora --enable-libx264 --enable-libxvid --enable-x11grab
make
sudo checkinstall --fstrans=no --install=yes --pkgname=ffmpeg --pkgversion "3:0.svn`date +%Y%m%d`-12ubuntu3" –default


5做個試驗



ffmpeg -i movie.mpg -b 300000 -s 320×240 -vcodec mpeg4 -acodec aac movie.mp4

mp4creator -optimize movie.mp4


mp4creator -hint=1 movie.mp4


mp4creator -hint=2 movie.mp4


mp4creator -list movie.mp4



注意:在做mp4creator的時候會出現 一些類似報錯信息,可以跳過,繼續:



cri@cri-desktop:/usr/local/movies$ mp4creator -hint=1 03.m4a

MP4ERROR: MP4File::FindIntegerProperty: no such property - moov.trak[1].mdia.minf.stbl.stsd.*.esds.decConfigDescr.objectTypeId



cri@cri-desktop:/usr/local/movies$ mp4creator -hint=2 03.m4a

mp4creator: can't hint track type hint


mp4creator: error hinting track 2


cri@cri-desktop:/usr/local/movies$ mp4creator -list 03.m4a


Track   Type    Info


1       audio   MPEG-4 AAC LC, 271.766 secs, 258 kbps, 44100 Hz


2       hint    Payload mpeg4-generic for track 1



6 講處理過的文件放到DSS相關目錄下:



遠程打開, 如果沒有問題ok!



繼續研究



參考:



http://www.howtoforge.com/apples-darwin-streaming-server-on-centos-5.2-p2



http://ubuntuforums.org/showthread.php?t=786095

2009年10月12日星期一

Ubuntu的ssh

試用一個Ubuntu(9.04 version)安裝完成之後,remote方式登錄不了, 檢查發現沒有sshd服務啟動,

google了一下,發現default方式不帶這個

安裝方法記錄之,備查:

sudo apt-get update # 好像要更新一下所有的東東

sudo apt-get install openssh-server  #安裝

用netstat –tln 檢查發現 22 port開放了, 用putty login ok!

Redhat(CentOS)下安裝ffmpeg

嘗試從source code方式編譯,總是不得法沒有辦法, 先滿足工作需要用yum方式吧,

利用資源:

http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm

http://apt.sw.be/redhat/el5/en/x86_64/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm 

一個是32bits, 一個是64bits

安裝還算順利

[root@vlc ~]# wget -c http://apt.sw.be/redhat/el5/en/x86_64/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm
--01:22:38--  http://apt.sw.be/redhat/el5/en/x86_64/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm
Resolving apt.sw.be... 193.1.193.67
Connecting to apt.sw.be|193.1.193.67|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 16697 (16K) [application/x-redhat-package-manager]
--01:22:41--  (try: 2)  http://apt.sw.be/redhat/el5/en/x86_64/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm
Reusing existing connection to apt.sw.be:80.
HTTP request sent, awaiting response... 200 OK
Length: 16697 (16K) [application/x-redhat-package-manager]
Saving to: `rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm'

100%[=======================================>] 16,697      18.6K/s   in 0.9s

01:22:42 (18.6 KB/s) - `rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm' saved [16697/16697]

[root@vlc ~]# rpm -Uvh rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm
warning: rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID 6b8d79e6
Preparing...                ########################################### [100%]
   1:rpmforge-release       ########################################### [100%]

[root@vlc ~]# yum install ffmpeg
Loaded plugins: security
rpmforge                                                 | 1.1 kB     00:00
primary.xml.gz                                           | 3.4 MB     00:21
rpmforge                                                       9424/9424
dag                                                      | 1.1 kB     00:00
Setting up Install Process
Parsing package install arguments
Resolving Dependencies
--> Running transaction check
---> Package ffmpeg.x86_64 0:0.5-2.el5.rf set to be updated
--> Processing Dependency: a52dec for package: ffmpeg
--> Processing Dependency: libdirac_decoder.so.0()(64bit) for package: ffmpeg
--> Processing Dependency: libfaad.so.0()(64bit) for package: ffmpeg
--> Processing Dependency: libamrnb.so.3()(64bit) for package: ffmpeg
--> Processing Dependency: libpostproc.so.51()(64bit) for package: ffmpeg
--> Processing Dependency: libamrwb.so.3()(64bit) for package: ffmpeg
--> Processing Dependency: libImlib2.so.1()(64bit) for package: ffmpeg
--> Processing Dependency: libdirac_encoder.so.0()(64bit) for package: ffmpeg
--> Processing Dependency: libx264.so.68()(64bit) for package: ffmpeg
--> Running transaction check
---> Package a52dec.x86_64 0:0.7.4-8.el5.rf set to be updated
---> Package x264.x86_64 0:0.0.0-0.4.20090708.el5.rf set to be updated
---> Package imlib2.x86_64 0:1.4.0-1.el5.rf set to be updated
--> Processing Dependency: libid3tag.so.0()(64bit) for package: imlib2
---> Package faad2.x86_64 0:2.6.1-1.el5.rf set to be updated
---> Package amrwb.x86_64 0:7.0.0.3-1.el5.rf set to be updated
---> Package amrnb.x86_64 0:7.0.0.2-1.el5.rf set to be updated
---> Package ffmpeg-libpostproc.x86_64 0:0.5-2.el5.rf set to be updated
---> Package dirac.x86_64 0:1.0.2-1.el5.rf set to be updated
--> Processing Dependency: libcppunit-1.12.so.0()(64bit) for package: dirac
--> Running transaction check
---> Package cppunit.x86_64 0:1.12.0-3.el5.rf set to be updated
---> Package libid3tag.x86_64 0:0.15.1b-3.el5.rf set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
Package               Arch      Version                      Repository   Size
================================================================================
Installing:
ffmpeg                x86_64    0.5-2.el5.rf                 rpmforge    2.4 M
Installing for dependencies:
a52dec                x86_64    0.7.4-8.el5.rf               rpmforge     82 k
amrnb                 x86_64    7.0.0.2-1.el5.rf             rpmforge    237 k
amrwb                 x86_64    7.0.0.3-1.el5.rf             rpmforge    192 k
cppunit               x86_64    1.12.0-3.el5.rf              rpmforge    825 k
dirac                 x86_64    1.0.2-1.el5.rf               rpmforge    3.1 M
faad2                 x86_64    2.6.1-1.el5.rf               rpmforge    337 k
ffmpeg-libpostproc    x86_64    0.5-2.el5.rf                 rpmforge     37 k
imlib2                x86_64    1.4.0-1.el5.rf               rpmforge    977 k
libid3tag             x86_64    0.15.1b-3.el5.rf             rpmforge     78 k
x264                  x86_64    0.0.0-0.4.20090708.el5.rf    rpmforge    884 k

Transaction Summary
================================================================================
Install     11 Package(s)
Update       0 Package(s)
Remove       0 Package(s)

Total download size: 9.0 M
Is this ok [y/N]: y
Downloading Packages:
(1/11): ffmpeg-libpostproc-0.5-2.el5.rf.x86_64.rpm       |  37 kB     00:01
(2/11): libid3tag-0.15.1b-3.el5.rf.x86_64.rpm            |  78 kB     00:01
(3/11): a52dec-0.7.4-8.el5.rf.x86_64.rpm                 |  82 kB     00:00
(4/11): amrwb-7.0.0.3-1.el5.rf.x86_64.rpm                | 192 kB     00:01
(5/11): amrnb-7.0.0.2-1.el5.rf.x86_64.rpm                | 237 kB     00:01
(6/11): faad2-2.6.1-1.el5.rf.x86_64.rpm                  | 337 kB     00:08
(7/11): cppunit-1.12.0-3.el5.rf.x86_64.rpm               | 825 kB     00:18
(8/11): x264-0.0.0-0.4.20090708.el5.rf.x86_64.rpm        | 884 kB     00:10
(9/11): imlib2-1.4.0-1.el5.rf.x86_64.rpm                 | 977 kB     00:07
(10/11): ffmpeg-0.5-2.el5.rf.x86_64.rpm                  | 2.4 MB     00:17
(11/11): dirac-1.0.2-1.el5.rf.x86_64.rpm                 | 3.1 MB     00:14
--------------------------------------------------------------------------------
Total                                            98 kB/s | 9.0 MB     01:33
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : faad2                                           [ 1/11]
  Installing     : amrnb                                           [ 2/11]
  Installing     : cppunit                                         [ 3/11]
  Installing     : dirac                                           [ 4/11]
  Installing     : amrwb                                           [ 5/11]
  Installing     : a52dec                                          [ 6/11]
  Installing     : libid3tag                                       [ 7/11]
  Installing     : imlib2                                          [ 8/11]
  Installing     : x264                                            [ 9/11]
  Installing     : ffmpeg                                          [10/11]
  Installing     : ffmpeg-libpostproc                              [11/11]

Installed: ffmpeg.x86_64 0:0.5-2.el5.rf
Dependency Installed: a52dec.x86_64 0:0.7.4-8.el5.rf amrnb.x86_64 0:7.0.0.2-1.el5.rf amrwb.x86_64 0:7.0.0.3-1.el5.rf cppunit.x86_64 0:1.12.0-3.el5.rf dirac.x86_64 0:1.0.2-1.el5.rf faad2.x86_64 0:2.6.1-1.el5.rf ffmpeg-libpostproc.x86_64 0:0.5-2.el5.rf imlib2.x86_64 0:1.4.0-1.el5.rf libid3tag.x86_64 0:0.15.1b-3.el5.rf x264.x86_64 0:0.0.0-0.4.20090708.el5.rf
Complete!
[root@vlc ~]#

2009年10月11日星期日

RHCE5上mount一個NTFS的活動硬盤(usb)

原來的mobile disk壞了,一直懶的搞, 週末去買了一個, 不過現在的2.5都是sata的了, 原來的IDE的disk 比較貴了,所以又買了個盒子.

今天到公司, format這個東東為ntfs, 畢竟windows下的資源比較多:)

拿到linux環境下居然不能用:

[root@CRRACTEST2 ~]# mount /dev/sdb1 /home/usb
mount: unknown filesystem type 'ntfs'
[root@CRRACTEST2 ~]#

啥年月了redhat還不支持這個,google了一下,找到一個方法

[root@CRRACTEST2 ~]# uname -a
Linux CRRACTEST2.localdomain 2.6.18-92.el5 #1 SMP Fri May 23 23:40:43 EDT 2008 x86_64 x86_64 x86_64 GNU/Linux

下載

http://www.linux-ntfs.org/doku.php?id=redhat:rhel5

[root@CRRACTEST2 software]# wget -c http://prdownloads.sourceforge.net/linux-ntfs/kernel-module-ntfs-2.6.18-92.el5-2.1.27-0.rr.10.11.x86_64.rpm

[root@CRRACTEST2 software]# rpm -Uvh kernel-module-ntfs-2.6.18-92.el5-2.1.27-0.rr.10.11.x86_64.rpm
Preparing...                ########################################### [100%]
   1:kernel-module-ntfs-2.6.########################################### [100%]

[root@CRRACTEST2 software]# mount /dev/sdb1 /home/usb/
[root@CRRACTEST2 software]#

好像是只讀的

參考:http://www.enlamp.cn/?p=198

[root@CRRACTEST2 software]#  wget http://nchc.dl.sourceforge.net/sourceforge/fuse/fuse-2.7.4.tar.gz

[root@CRRACTEST2 software]# wget -c http://jaist.dl.sourceforge.net/sourceforge/linux-ntfs/ntfsprogs-2.0.0.tar.bz2

安裝:

三板斧 cofigure make make install ,順利

加載fuse model:

[root@CRRACTEST2 ~]# modprobe fuse

[root@CRRACTEST2 ~]# umount /dev/sdb1 #umount 原來的

[root@CRRACTEST2 ~]# ntfsmount /dev/sdb1 /home/usb
[root@CRRACTEST2 ~]#

編輯一個文件測試一下ok

[root@CRRACTEST2 usb]# pwd
/home/usb
[root@CRRACTEST2 usb]#

[root@CRRACTEST2 usb]# ll
total 0
drwxrwxrwx 1 root root 0 Oct 12 09:54 System Volume Information
-rw-rw-rw- 1 root root 6 Oct 12 10:51 test.txt

手順啊, 呵呵!

2009年9月30日星期三

"如果你解決不了問題,那麼你就是個問題"

看<學習的藝術>中的兩句話,備忘一下:
"如果你解決不了問題,那麼你就是個問題"
"所謂學習技術就是在尋找上升的氣流"

xcode下開發1

因公司要做iPhone版本的一個產品,所以需要使用xcode這個東西,經過兩天的折騰,終於寫了個HelloWorld出來,對object c也有了初步的認識

這裡使用的是xcode3.0版本,參考 (Jailbreak Goddess) Erica Sadum 提供了大量的代碼,我是比較愚鈍的,進展很慢:(,不過終於搞好了以一個hello world
為了閱讀方便,作者把所有的代碼寫到一起了
---------------main.c------------------------
#import

@class UIImageView;

@interface HelloController : UIViewController
{
UIImageView *contentView;
}
@end

@implementation HelloController
- (id)init
{
if (self = [super init])
{
self.title = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleName"];
// place any further initialization here
}
return self;
}

/**
*建立起主要的應用程序VIEW
**/
- (void)loadView
{
// Load an application image and set it as the primary view
contentView = [[UIImageView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
[contentView setImage:[UIImage imageNamed: @"helloworld.png" ]];

// Provide support for auto-rotation and resizing
contentView.autoresizesSubviews = YES;
contentView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);

// Assign the view to the view controller
self.view = contentView;
[contentView release]; // reduce retain count by one

}

// Allow the view to respond to iPhone Orientation changes
/**
* 為自動旋轉功能准備幾個標志
**/
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return YES;
}

-(void) dealloc
{
// add any further clean-up here
[contentView release];
[super dealloc];
}
@end

/**
* UIApplicationMain()呼叫跑到這裡了
**/
@interface SampleAppDelegate : NSObject {
}
@end

@implementation SampleAppDelegate

// On launch, create a basic window
/**
* applicationDidFinishLaunching: 方法
*標准的mainScreen繪制一個新視窗, 它會建立一個導覽控制程序,並知道給一個新的HelloController(UIViewControler子類別)來當作他自己的根源試圖控制程序(Root View Controller)
**/
- (void)applicationDidFinishLaunching:(UIApplication *)application {
UIWindow *window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:[[HelloController alloc] init]];
[window addSubview:nav.view];
[window makeKeyAndVisible];
}

- (void)applicationWillTerminate:(UIApplication *)application {
// handle any final state matters here
}

- (void)dealloc {
[super dealloc];
}

@end


/**
main函數是xcode自動產生的,而且還保持未經過人變動的原貌
他呼叫 UIApplicationMain(),並將主要的應用程序的委派方法名稱,這裡是 @"SampleAppDelegate"傳給他!
*/

int main(int argc, char *argv[])
{
/**
*這裡應該是內存分配
**/
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
printf("hellowrold\n");
int retVal = UIApplicationMain(argc, argv, nil, @"SampleAppDelegate");
[pool release];
return retVal;
}

---------------------------------------------
我創建了一個新的PROJECT,然後把上面的代碼copy過去,運行是報錯.屢試不爽.
後來按照書中的要求一步步來,就沒有出錯了,環境不熟悉阿:
記錄一下:
1 刪除classes 文件夾
2 刪除.xib文件
3 在info.list,我的版本上是helloworld-info.list文件中的"NSMainNibFile"的KEY-VALUE 這一行
4 加入image文件夾,這裡是用ADD NEW GROUP
5 拖文件到這個文件夾中(xcode環境中)
6 用上面的main.m覆蓋原來的內容
7 COMMONAD + ENTER 運行模擬器
如果沒有問題的話就OK了

這裡有幾個小技巧:
COMMAND + <
COMMAND + > 模仿IPHONE橫位

COMMAND + SHIHF + R 可以看到後台運行的情況, 我原來一直不知道printf打LOG信息從那裡看,這下子就知道了:)

INSTRUMENTS的執行方式: instruments是APPLE基於SUN的DTRACE搞的,一直很向往之,終於見識了,設定方法:
XCODE環境 -->RUN --> START WITH PERFORMANCE TOOL ,有幾個方式, 我猜OBJECT ALLOCATION 和 CPU SAMPLER應該是比較常用的. 估計以後查內存洩露的時候可以用到.




2009年9月29日星期二

中醫中講的"陰,陽,虛,實"是怎麼一回事

今日聽黃帝內徑的,徐大夫解釋了 ""陰,陽,虛,實"" 比較受教,記錄一下,備忘:

陰,一般來說就是物質不足
陽,一般來說物質有,但是能量不足
虛, 該有的東西沒有
實, 有了不該有的東西