From: jreichen <jre...@us...> - 2011-01-15 21:08:02
|
Update of /cvsroot/sageplugins/MediaStreaming/src/sagex/streaming/listener In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv17605/src/sagex/streaming/listener Modified Files: AppContextListener.java Log Message: Use SageTV's ffmpeg for transcoding. Index: AppContextListener.java =================================================================== RCS file: /cvsroot/sageplugins/MediaStreaming/src/sagex/streaming/listener/AppContextListener.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** AppContextListener.java 5 Nov 2010 02:58:36 -0000 1.2 --- AppContextListener.java 15 Jan 2011 21:07:54 -0000 1.3 *************** *** 35,87 **** // System.err.println("Stderr: starting media streaming web app"); // System.out.println("Stderr class: " + System.err.getClass()); - - String ffmpegPath = ""; - if (Global.IsLinuxOS()) - { - ffmpegPath = "/WEB-INF/bin/linux32/ffmpeg"; - } - else if (Global.IsMacOS()) - { - ffmpegPath = "/WEB-INF/bin/macos/ffmpeg"; - } - else if (Global.IsWindowsOS()) - { - ffmpegPath = "/WEB-INF/bin/win32/ffmpeg.exe"; - } - - File ffmpegFile = null; - try - { - URL ffmpegUrl = event.getServletContext().getResource(ffmpegPath); - if (ffmpegUrl != null) - { - // jump through hoops to deal with spaces in the path (mainly for Windows "Program Files" directory) - // http://weblogs.java.net/blog/2007/04/25/how-convert-javaneturl-javaiofile - try - { - // convert %20 to a space - ffmpegFile = new File(ffmpegUrl.toURI()); - } - catch (URISyntaxException e) - { - ffmpegFile = new File(ffmpegUrl.getPath()); - } - Log.debug("FFmpeg executable location: " + ffmpegFile.getAbsolutePath()); - SegmenterProcess.setProcessLocation(ffmpegFile); - } - } - catch (MalformedURLException e) - { - Log.info(e.getMessage()); - Log.ignore(e); - } - catch (IllegalArgumentException e) - { - Log.info(e.getMessage()); - Log.ignore(e); - } ! setFileExecutablePermission(ffmpegFile); ! event.getServletContext().setAttribute(SEGMENT_MANAGER_ATTRIBUTE_NAME, new SegmentManager()); } --- 35,42 ---- // System.err.println("Stderr: starting media streaming web app"); // System.out.println("Stderr class: " + System.err.getClass()); ! setTranscoderLocation(event); ! setSegmenterLocation(event); ! event.getServletContext().setAttribute(SEGMENT_MANAGER_ATTRIBUTE_NAME, new SegmentManager()); } *************** *** 120,124 **** --- 75,154 ---- } } + + private void setTranscoderLocation(ServletContextEvent event) + { + String transcoderPath = ""; + File sagetvHome = new File(System.getProperty("user.dir")); + if (Global.IsLinuxOS()) + { + transcoderPath = "ffmpeg"; + } + else if (Global.IsMacOS()) + { + transcoderPath = "ffmpeg"; + } + else if (Global.IsWindowsOS()) + { + transcoderPath = "SageTVTranscoder.exe"; + } + + File transcoderFile = new File(sagetvHome, transcoderPath); + Log.debug("HTTPLS transcoder executable location: " + transcoderFile.getAbsolutePath()); + SegmenterProcess.setTranscoderProcessLocation(transcoderFile); + } + private void setSegmenterLocation(ServletContextEvent event) + { + // the segmenter is delivered in the war file + String segmenterPath = ""; + if (Global.IsLinuxOS()) + { + segmenterPath = "/WEB-INF/bin/linux32/ffmpeg"; + } + else if (Global.IsMacOS()) + { + segmenterPath = "/WEB-INF/bin/macos/ffmpeg"; + } + else if (Global.IsWindowsOS()) + { + segmenterPath = "/WEB-INF/bin/win32/ffmpeg.exe"; + } + + File segmenterFile = null; + try + { + URL segmenterUrl = event.getServletContext().getResource(segmenterPath); + if (segmenterUrl != null) + { + // jump through hoops to deal with spaces in the path (mainly for Windows "Program Files" directory) + // http://weblogs.java.net/blog/2007/04/25/how-convert-javaneturl-javaiofile + try + { + // convert %20 to a space + segmenterFile = new File(segmenterUrl.toURI()); + } + catch (URISyntaxException e) + { + segmenterFile = new File(segmenterUrl.getPath()); + } + Log.debug("HTTPLS segmenter executable location: " + segmenterFile.getAbsolutePath()); + SegmenterProcess.setSegmenterProcessLocation(segmenterFile); + } + } + catch (MalformedURLException e) + { + Log.info(e.getMessage()); + Log.ignore(e); + } + catch (IllegalArgumentException e) + { + Log.info(e.getMessage()); + Log.ignore(e); + } + + // since this is expanded from the war file + setFileExecutablePermission(segmenterFile); + } + private void setFileExecutablePermission(File file) { |