Your SlideShare is downloading. ×
  • Like
Adobe AIR. NativeProcess. FFMPEG. Awesome.
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Adobe AIR. NativeProcess. FFMPEG. Awesome.

  • 3,741 views
Published

April 8 2014: Rocky Mountain Adobe User Group

April 8 2014: Rocky Mountain Adobe User Group

Published in Software
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
3,741
On SlideShare
0
From Embeds
0
Number of Embeds
10

Actions

Shares
Downloads
15
Comments
0
Likes
4

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Adobe AIR. NativeProcess. FFMPEG. Awesome. ROCKY MOUNTAIN ADOBE USER GROUP – APRIL 8 2014
  • 2. Introduction  Flash Player and AIR… What’s Up?  FFMPEG: CLI Transcoder  AIR NativeProcess API  VOD Transcode  Live Streaming  Closing Remarks
  • 3. Joseph Labrecque  Senior Interactive Software Engineer | Adjunct Faculty University of Denver  Proprietor | Owner Fractured Vision Media, LLC  Adobe Community Professional Adobe Education Leader Adobe Certified Expert Adobe Certified Educator Adobe Influencer  Author Lynda.com | Peachpit Press | Adobe Press | Packt Publishing | O’Reilly Media | video2brain  Artist An Early Morning Letter, Displaced | shivervein
  • 4. AIR is “King” THIRTEEN
  • 5. What’s new with the Runtimes?  Flash Player 12 / AIR 4  Improved Packaging Engine - iOS - BETA  Graphics: Buffer Usage flag for Stage3D  Mobile Workers (concurrency) - Android  Support for native resources access by R* mechanism in ANE - Android  Stage3D Creation of Context3D with Profile Array  Flash Player 13 / AIR 13 – RELEASED TODAY!!!  Enhanced Supplementary Character Support for TextField  Relocated Full Screen Video Warning to Top of Screen  New Stage3D Texture Wrapping Modes  Debugging and Telemetry Support for Improved Packaging Engine - iOS - BETA
  • 6. 2014 Runtimes Positioning The Adobe® Flash® Platform runtimes, Flash Player and AIR®, together enable businesses to efficiently deliver rich customer experiences across multiple digital touch points. With Flash Player and AIR, content can easily and consistently move between the browser, standalone applications and native operating systems to reach users on the devices of their choice. Since the Adobe runtimes share a common codebase, developers can reuse code to deploy game console quality 2D and 3D games, rich media applications with premium high definition video and scalable date driven applications though both AIR and Flash Player. March, 2014
  • 7. Flash is Dead March, 2014
  • 8. 2014 Flash Runtimes Statistics “Flash is Dead” - false  More than 175,000 applications using AIR 3.8 or greater.  Installed over 500 million times in the second half of 2013.  Reach 11 times more people than the best-selling hardware game console!  400 million+ desktops update to the new version of Flash Player within six weeks of release.  500 million+ devices are addressable today with Flash technology  1 billion projected addressable devices by the end of 2015. http://www.adobe.com/products/flashruntimes/statistics.html
  • 9. DU VideoManager Flash Player Stats April, 2014
  • 10. FFMPEG CLI VIDEO TRANSCODE
  • 11. FFMPEG  FFmpeg is a complete, cross-platform solution to record, convert and stream audio and video. It includes libavcodec - the leading audio/video codec library.  Adobe AIR can tap into and control FFMPEG.  Convert video…  Capture desktops…  Capture webcam…  Stream files, desktops, webcams…
  • 12. Distributions  Linux  http://ffmpeg.gusari.org/static/  http://johnvansickle.com/ffmpeg/  Windows  Zeranoe FFmpeg builds: http://ffmpeg.zeranoe.com/builds/  OSX  http://www.evermeet.cx/ffmpeg/  http://ffmpegmac.net/
  • 13. FFMPEG Source  If you want to contribute…  Git: git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg
  • 14. Documentation  ffmpeg [global_options] {[input_file_options] -i ‘input_file’} ... {[output_file_options] ‘output_file’} ...  Specify inputs…  An array of options for transcoding…  How to output?
  • 15. NativeProcess THE ENDLESS API
  • 16. AIR 2.0!  Released in 2010  Theme was “disruption”  Supports NativeProcess  Only the extendedDesktop AIR profile supports the NativeProcess class.
  • 17. What is NativeProcess?  “The NativeProcess class provides command line integration and general launching capabilities. The NativeProcess class lets an AIR application execute native processes on the host operating system. The AIR application can monitor the standard input (stdin) and standard output (stdout) stream of the process as well as the process's standard error (stderr) stream.”  Basically, this new API allows your application to communicate with just about any process running on the host machine. This can be an operating system core process or software like FFMPEG.
  • 18. DropFolders  Video Converter  Originally an experiment…  Uses HandBrake CLI  Fairly popular… for a demo.
  • 19. DropFolders - Source  I get emails… every week.  Now open source…  Want a change? Contribute!  https://github.com/josephlabrecque/DropF olders
  • 20. NativeProcess Example FFMPEG AND BATCH
  • 21. What to Import  flash.desktop.NativeProcess;  flash.desktop.NativeProcessStartupInfo;  flash.events.NativeProcessExitEvent;  flash.events.ProgressEvent;  flash.events.IOErrorEvent;  flash.filesystem.File;
  • 22. NativeProcess Setup  Create a new File object to run  Create the NativeProcess and add listeners  Create NativeProcessStartupInfo instance  Build up your arguments as Vector  Bind everything together and start
  • 23. NativeProcess Communication  Standard Input  nativeProcess.standardInput.writeUTF();  Standard Output  nativeProcess.standardOutput.readUTFBytes();
  • 24. Simple Example – DEMO!!!  FFMPEG is command-line driven  Batch files are useful for CLI 1. Invoke Windows Command Prompt 2. Call a batch file 3. Instruct FFMPEG 4. Read the output
  • 25. VOD Transcode FOR FLASH AND HTML5
  • 26. VideoManager  System for the University of Denver  Faculty, staff, and student uploads  Video is gathered from upload server [AIR]  Video is converted on server [AIR/FFMPEG]  Converted video is moved to AMS  Adobe Media Server streams [HDS/HLS]
  • 27. VideoCast  Public face of DU VideoManager  Curated video collections  Rich in metadata
  • 28. CrunchBuddy  Headless AIR app  AIR Captive Runtime  Installed as a Windows service  3 transcode servers host this service: CRUNCHER, CRUNCHER2, CRUNCHER3  Processes up to 50 videos a day
  • 29. CrunchBuddy - Process  Listens for files added to a temp directory on the VideoManager web server.  Pulls those files over the network into a queue.  Uses MediaInfo libraries to read bitrate, resolution, rotation, and so forth.  Makes decisions on how to encode the file.  Performs transcode and moves the file(s) to Adobe Media Server for streaming.  Alerts the user that their file is ready through VideoManger communication.  Problems? Log file is written.
  • 30. CrunchBuddy – DEMO!!!  Adobe AIR  File  NativeProcess  Captive Runtime  POST/GET  AMS  MediaInfo  FFMPEG  Windows Server  Adobe Media Server  Apache, PHP, Laravel, MySQL
  • 31. Live Streaming AND MORE…
  • 32. CameraSnatcher  Web module… no NativeProcess!  Until it hits CrunchBuddy :)  Measure bandwidth with AMS.  Bandwidth determines quality.
  • 33. StreamSnatcher  Work in progress…  Create 3 streams send to RTMP  AMS streams as HDS/HLS
  • 34. Related: ANEs CLOSE COUSINS.
  • 35. ANEs: AIR Native Extensions  An ANE file is an archive file that contains the necessary libraries and resources for the native extension.  Native code plus ActionScript code.  AIR profiles extendedDesktop, mobileDevice, and extendedMobileDevice  Declaring the extension in your application descriptor file.  200+ multiplatform ANEs: http://www.riaxe.com/blog/200-adobe-air- anes/
  • 36. Desktop… Mobile… whatever.  Android devices, starting with Android 2.2  iOS devices, starting with iOS 4.0  iOS Simulator, starting with AIR 3.3  Blackberry PlayBook  Windows desktop devices that support AIR 3.0  Mac OS X desktop devices that support AIR 3.0
  • 37. Closing Remarks JUST A COUPLE MORE THINGS…
  • 38. Why all the chains and ropes, Adobe… http://www.infin8iphone.co.uk/?p=240
  • 39. …when even you stray from the “rules”? Adobe Photoshop Touch. Built with AIR. Not a game.
  • 40. Building a Mobile App with Feathers and Starling  Downloading the frameworks and the AIR SDK  Configuring the project  Implementing a theme  Creating the screen classes  Adding a navbar component  Building the classes  Returning saved files  Publishing a project  Installing and running the app http://www.lynda.com/JosephLabrecque
  • 41. Thanks. Questions? CONTACT JOSEPH  @JosephLabrecque  JosephLabrecque.com  Joseph.Labrecque@du.edu