&tag(AirVideoServer); *目次 [#y8f3342a] #contents *参考情報 [#ua365e18] -[[AirVideo]] *Linux(Debian Squeeze)で動かす [#fbfd6e6d] **参考情報 [#x5db7782] -[[AVS Linux - Download links & information:http://www.inmethod.com/forum/posts/list/1856.page]]…Linux用AirVideoServerの情報はここで更新される。 -[[AirVideo Server for Linuxを試してみる - たかおたんブログWP:http://www.shiotan.net/takablog/?p=2179]]…Debianでの設定例。 -[[AirVideo Server under Linux [mbirth's Wiki]:http://wiki.birth-online.de/know-how/hardware/apple-iphone/airvideo-server-linux]]…同じくDebianでの設定例。 **apt-getで前準備 [#q032486c] -mpeg4ip-serverは各所で入れるよう書かれているがSqueezeにはパッケージが存在しない。開発中止されたプロジェクトなのでソースをダウンロードしてきてもそのままではコンパイルできない。中に含まれるmp4creatorが必要かつバックグラウンドエンコードに必要なだけで通常運用には必要ないらしいのでここでは入れないことにする。 #pre{{ # apt-get install faad # apt-get install libfaad-dev # apt-get install libxvidcore-dev # apt-get install libx264-dev # apt-get install libfaac-dev # apt-get install libmp3lame-dev }} **インストール [#x9f1bf52] -/home/airvideoに一式インストールする。 #pre{{ # mkdir /home/airvideo # cd /home/airvideo # wget http://inmethod.com/air-video/download/linux/alpha6/AirVideoServerLinux.jar # wget http://inmethod.com/air-video/download/ffmpeg-for-2.4.5-beta6.tar.bz2 # tar xvjf ffmpeg-for-2.4.5-beta6.tar.bz2 # cd ffmpeg # ./configure --enable-pthreads --disable-shared --enable-static --enable-gpl --enable-libx264 --enable-libmp3lame # make # make install }} yasmなんたらかんたらでエラーが発生したらapt-get install yasmする。 **設定ファイルの作成 [#xdb225a5] -次の内容で/home/airvide/app.propertiesを作成する #pre{{ path.ffmpeg=/usr/local/bin/ffmpeg path.faac = /usr/bin/faac path.mp4creator = password = test subtitles.encoding = windows-1250 subtitles.font = Verdana folders = Movies:/home/movies }} **起動する [#g2a3661c] -とりあえずテスト起動 java -jar AirVideoServerLinux.jar app.properties *トラブルシューティング [#t7da6ee1] ** Cannot run program "/usr/local/bin/ffmpeg "が発生。 [#cf21cd26] -次のエラーが発生する #pre{{ java.lang.RuntimeException: java.io.IOException: Cannot run program "/usr/local/bin/ffmpeg ": java.io.IOException: error=2, No such file or directory at com.inmethod.air.video.common.ff.FFVideoSnapshotParser.getSnapshot(FFVideoSnapshotParser.java:508) at com.inmethod.air.video.common.thumbnail.ThumbnailParser.parseThumbnail(ThumbnailParser.java:67) at com.inmethod.air.video.common.thumbnail.ThumbnailParser.parseThumbnailInternal(ThumbnailParser.java:104) at com.inmethod.air.video.common.thumbnail.ThumbnailParser.parseThumbnail(ThumbnailParser.java:139) at com.inmethod.air.video.v0240.info.MediaInfoParser.parseMediaInfo(MediaInfoParser.java:80) at com.inmethod.air.video.v0240.model.fs.FileSystemVideoItem.loadDetail(FileSystemVideoItem.java:59) at com.inmethod.air.video.v0240.model.BrowseService.getNestedItem(BrowseService.java:354) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.inmethod.air.connect.service.ServiceRegistry$ServiceWrapper.invoke(ServiceRegistry.java:221) at com.inmethod.air.connect.service.ServiceRegistry.invokeMethod(ServiceRegistry.java:48) at com.inmethod.air.connect.service.ServiceRegistry.invokeMethod(ServiceRegistry.java:37) at com.inmethod.air.connect.filter.ServiceFilter.doFilter(ServiceFilter.java:82) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139) at org.mortbay.jetty.Server.handle(Server.java:313) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506) at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:844) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:644) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:205) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381) at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:227) at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442) Caused by: java.io.IOException: Cannot run program "/usr/local/bin/ffmpeg ": java.io.IOException: error=2, No such file or directory at java.lang.ProcessBuilder.start(ProcessBuilder.java:460) at com.inmethod.process.StandardProcessBuilderDelegate.start(StandardProcessBuilderDelegate.java:76) at com.inmethod.process.ProcessBuilder.start(ProcessBuilder.java:111) at com.inmethod.air.video.common.ff.FFVideoSnapshotParser.getSnapshot(FFVideoSnapshotParser.java:396) ... 26 more Caused by: java.io.IOException: java.io.IOException: error=2, No such file or directory at java.lang.UNIXProcess.<init>(UNIXProcess.java:148) at java.lang.ProcessImpl.start(ProcessImpl.java:65) at java.lang.ProcessBuilder.start(ProcessBuilder.java:453) ... 29 more }} -ffmpegのパーミッションや存在確認するのが常套手段らしいのだが、ちゃんとある。よくみたらtest.propertiesにかかれた -ffmpegのパーミッションや存在確認するのが常套手段らしいのだが、ちゃんとある。よくみたらapp.propertiesにかかれたpath.ffmpeg=/usr/local/bin/ffmpegのffmpegの右に余計な空白がはいっていた。これを削ればうまくいった。