active-encode 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. checksums.yaml +7 -0
  2. data/.coveralls.yml +1 -0
  3. data/.gitignore +16 -0
  4. data/.travis.yml +10 -0
  5. data/Gemfile +7 -0
  6. data/LICENSE +202 -0
  7. data/README.md +106 -0
  8. data/Rakefile +34 -0
  9. data/active-encode.gemspec +29 -0
  10. data/lib/active-encode.rb +1 -0
  11. data/lib/active_encode.rb +2 -0
  12. data/lib/active_encode/base.rb +16 -0
  13. data/lib/active_encode/callbacks.rb +69 -0
  14. data/lib/active_encode/core.rb +81 -0
  15. data/lib/active_encode/engine_adapter.rb +52 -0
  16. data/lib/active_encode/engine_adapters.rb +26 -0
  17. data/lib/active_encode/engine_adapters/active_job_adapter.rb +23 -0
  18. data/lib/active_encode/engine_adapters/inline_adapter.rb +42 -0
  19. data/lib/active_encode/engine_adapters/matterhorn_adapter.rb +290 -0
  20. data/lib/active_encode/engine_adapters/test_adapter.rb +38 -0
  21. data/lib/active_encode/engine_adapters/zencoder_adapter.rb +147 -0
  22. data/lib/active_encode/status.rb +38 -0
  23. data/lib/active_encode/technical_metadata.rb +11 -0
  24. data/lib/active_encode/version.rb +3 -0
  25. data/spec/fixtures/Bars_512kb.mp4 +0 -0
  26. data/spec/fixtures/matterhorn/cancelled_response.xml +323 -0
  27. data/spec/fixtures/matterhorn/completed_response.xml +4 -0
  28. data/spec/fixtures/matterhorn/create_response.xml +300 -0
  29. data/spec/fixtures/matterhorn/delete_track_response.xml +2 -0
  30. data/spec/fixtures/matterhorn/failed_response.xml +4 -0
  31. data/spec/fixtures/matterhorn/purged_response.xml +342 -0
  32. data/spec/fixtures/matterhorn/running_response.xml +1 -0
  33. data/spec/fixtures/matterhorn/stop_completed_response.xml +228 -0
  34. data/spec/fixtures/matterhorn/stop_running_response.xml +339 -0
  35. data/spec/fixtures/zencoder/job_create.json +1 -0
  36. data/spec/fixtures/zencoder/job_details_cancelled.json +1 -0
  37. data/spec/fixtures/zencoder/job_details_completed.json +1 -0
  38. data/spec/fixtures/zencoder/job_details_create.json +1 -0
  39. data/spec/fixtures/zencoder/job_details_failed.json +73 -0
  40. data/spec/fixtures/zencoder/job_details_running.json +1 -0
  41. data/spec/fixtures/zencoder/job_progress_cancelled.json +13 -0
  42. data/spec/fixtures/zencoder/job_progress_completed.json +13 -0
  43. data/spec/fixtures/zencoder/job_progress_create.json +1 -0
  44. data/spec/fixtures/zencoder/job_progress_failed.json +13 -0
  45. data/spec/fixtures/zencoder/job_progress_running.json +1 -0
  46. data/spec/integration/matterhorn_adapter_spec.rb +186 -0
  47. data/spec/integration/zencoder_adapter_spec.rb +153 -0
  48. data/spec/spec_helper.rb +12 -0
  49. data/spec/units/callbacks_spec.rb +67 -0
  50. data/spec/units/engine_adapter_spec.rb +68 -0
  51. data/spec/units/status_spec.rb +64 -0
  52. metadata +221 -0
@@ -0,0 +1 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="yes"?><workflow xmlns="http://workflow.opencastproject.org" xmlns:ns2="http://org.opencastproject.security" xmlns:ns3="http://mediapackage.opencastproject.org" state="RUNNING" id="running-id"><template>full</template><description>A workflow that puts mediapackages on hold</description><parent xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/><ns2:creator><ns2:userName>matterhorn_system_account</ns2:userName><ns2:roles>MATTERHORN_ADMINISTRATOR</ns2:roles><ns2:roles>ROLE_ADMIN</ns2:roles><ns2:roles>ROLE_ANONYMOUS</ns2:roles><ns2:roles>ROLE_OAUTH_USER</ns2:roles><ns2:roles>ROLE_USER</ns2:roles><ns2:organization>mh_default_org</ns2:organization></ns2:creator><ns2:organization id="mh_default_org"><ns2:name>Opencast Project</ns2:name><ns2:servers><ns2:server port="8080" name="localhost"/></ns2:servers><ns2:adminRole>ROLE_ADMIN</ns2:adminRole><ns2:anonymousRole>ROLE_ANONYMOUS</ns2:anonymousRole><ns2:properties><ns2:property key="engageui.link_mobile_redirect.description">For more information have a look at the official site.</ns2:property><ns2:property key="engageui.link_mobile_redirect.url">http://opencast.org/matterhorn/</ns2:property><ns2:property key="engageui.annotations.enable">true</ns2:property><ns2:property key="adminui.series_prepopulate.enable">false</ns2:property><ns2:property key="adminui.i18n_tab_episode.enable">true</ns2:property><ns2:property key="avalon.stream_base">file:///home/cjcolvar/Code/avalon/avalon/red5/webapps/avalon/streams</ns2:property><ns2:property key="engageui.link_download.enable">false</ns2:property><ns2:property key="adminui.chunksize">2024</ns2:property><ns2:property key="logo_large">/engage/ui/img/mh_logos/MatterhornLogo_large.png</ns2:property><ns2:property key="adminui.i18n_tab_users.enable">false</ns2:property><ns2:property key="engageui.link_mobile_redirect.enable">false</ns2:property><ns2:property key="engageui.links_media_module.enable">true</ns2:property><ns2:property key="logo_small">/engage/ui/img/mh_logos/OpencastLogo.png</ns2:property></ns2:properties></ns2:organization><ns3:mediapackage start="2015-04-20T17:58:43Z" id="b4f69edb-e8d2-476f-bdc6-dcd950977c43"><ns3:title>Bars_512kb.mp4</ns3:title><ns3:media><ns3:track type="presenter/source" id="92974711-ec7f-4b81-8f0b-7527567daf85"><ns3:tags/><ns3:url>http://localhost:8080/files/mediapackage/b4f69edb-e8d2-476f-bdc6-dcd950977c43/92974711-ec7f-4b81-8f0b-7527567daf85/Bars_512kb.mp4</ns3:url></ns3:track></ns3:media><ns3:metadata><ns3:catalog type="dublincore/episode" id="7395469f-31a3-447a-a4bd-0a26874cb2ea"><ns3:mimetype>text/xml</ns3:mimetype><ns3:tags/><ns3:url>http://localhost:8080/files/mediapackage/b4f69edb-e8d2-476f-bdc6-dcd950977c43/7395469f-31a3-447a-a4bd-0a26874cb2ea/dublincore.xml</ns3:url></ns3:catalog></ns3:metadata><ns3:attachments/></ns3:mediapackage><operations><operation retry-strategy="none" execution-host="http://localhost:8080" failed-attempts="0" max-attempts="1" continuable="true" abortable="true" fail-on-error="true" description="Hold for workflow selection" state="SUCCEEDED" job="6962" id="append"><configurations/><holdurl>/workflow/hold/org.opencastproject.workflow.handler.appendworkflowoperationhandler</holdurl><hold-action-title>Action</hold-action-title><started>1429641529604</started><completed>1429641530091</completed><time-in-queue>0</time-in-queue><execution-history/></operation><operation retry-strategy="none" failed-attempts="0" max-attempts="1" exception-handler-workflow="error" fail-on-error="true" description="Applying access control rules" state="INSTANTIATED" job="7326" id="apply-acl"><configurations/><execution-history/></operation><operation retry-strategy="none" failed-attempts="0" max-attempts="1" fail-on-error="true" description="Tagging source material for archival" state="INSTANTIATED" id="tag"><configurations><configuration key="source-flavors">*/source,dublincore/*,security/*</configuration><configuration key="target-tags">+archive</configuration></configurations><execution-history/></operation><operation retry-strategy="none" failed-attempts="0" max-attempts="1" fail-on-error="true" description="Tagging dublin core catalogs for publishing" state="INSTANTIATED" id="tag"><configurations><configuration key="source-flavors">dublincore/*</configuration><configuration key="target-tags">+engage</configuration></configurations><execution-history/></operation><operation retry-strategy="none" failed-attempts="0" max-attempts="1" exception-handler-workflow="error" fail-on-error="true" description="Inspecting the media package" state="INSTANTIATED" id="inspect"><configurations/><execution-history/></operation><operation retry-strategy="none" failed-attempts="0" max-attempts="1" exception-handler-workflow="error" fail-on-error="true" description="Preparing presenter audio and video work versions" state="INSTANTIATED" id="prepare-av"><configurations><configuration key="target-flavor">presenter/work</configuration><configuration key="rewrite">false</configuration><configuration key="promiscuous-audio-muxing">true</configuration><configuration key="source-flavor">presenter/source</configuration></configurations><execution-history/></operation><operation retry-strategy="none" failed-attempts="0" max-attempts="1" exception-handler-workflow="error" fail-on-error="true" description="Preparing presentation audio and video work version" state="INSTANTIATED" id="prepare-av"><configurations><configuration key="target-flavor">presentation/work</configuration><configuration key="rewrite">false</configuration><configuration key="promiscuous-audio-muxing">true</configuration><configuration key="source-flavor">presentation/source</configuration></configurations><execution-history/></operation><operation retry-strategy="none" failed-attempts="0" max-attempts="1" exception-handler-workflow="error" if="${videoPreview}" fail-on-error="true" description="Encoding presenter (camera) video for preview" state="INSTANTIATED" id="compose"><configurations><configuration key="target-flavor">*/preview</configuration><configuration key="encoding-profile">flash-preview.http</configuration><configuration key="source-flavor">*/work</configuration></configurations><execution-history/></operation><operation retry-strategy="none" failed-attempts="0" max-attempts="1" exception-handler-workflow="error" if="${trimHold}" fail-on-error="true" description="Waiting for user to review / trim recording" state="INSTANTIATED" id="trim"><configurations><configuration key="encoding-profile">trim.work</configuration><configuration key="target-flavor-subtype">trimmed</configuration><configuration key="source-flavor">*/work</configuration></configurations><execution-history/></operation><operation retry-strategy="none" failed-attempts="0" max-attempts="1" fail-on-error="true" description="Tagging trimmed media for archive" state="INSTANTIATED" id="tag"><configurations><configuration key="source-flavors">*/trimmed</configuration><configuration key="target-tags">+archive</configuration></configurations><execution-history/></operation><operation retry-strategy="none" failed-attempts="0" max-attempts="1" exception-handler-workflow="error" if="${captionHold}" fail-on-error="true" description="Waiting for user to upload captions" state="INSTANTIATED" id="caption"><configurations><configuration key="target-tags">engage,archive</configuration></configurations><execution-history/></operation><operation retry-strategy="none" failed-attempts="0" max-attempts="1" exception-handler-workflow="error" fail-on-error="true" description="Encoding presenter (camera) to player preview image" state="INSTANTIATED" id="image"><configurations><configuration key="source-tags"></configuration><configuration key="target-flavor">presenter/player+preview</configuration><configuration key="time">1</configuration><configuration key="encoding-profile">player-preview.http</configuration><configuration key="target-tags">engage</configuration><configuration key="source-flavor">presenter/trimmed</configuration></configurations><execution-history/></operation><operation retry-strategy="none" failed-attempts="0" max-attempts="1" exception-handler-workflow="error" fail-on-error="true" description="Encoding presentation (screen) to player preview image" state="INSTANTIATED" id="image"><configurations><configuration key="source-tags"></configuration><configuration key="target-flavor">presentation/player+preview</configuration><configuration key="time">1</configuration><configuration key="encoding-profile">player-preview.http</configuration><configuration key="target-tags">engage</configuration><configuration key="source-flavor">presentation/trimmed</configuration></configurations><execution-history/></operation><operation retry-strategy="none" failed-attempts="0" max-attempts="1" exception-handler-workflow="error" fail-on-error="true" description="Encoding presenter (camera) video to Flash download" state="INSTANTIATED" id="compose"><configurations><configuration key="target-flavor">presenter/delivery</configuration><configuration key="encoding-profile">flash.http</configuration><configuration key="target-tags">engage</configuration><configuration key="source-flavor">presenter/trimmed</configuration></configurations><execution-history/></operation><operation retry-strategy="none" failed-attempts="0" max-attempts="1" exception-handler-workflow="error" fail-on-error="true" description="Encoding presentation (screen) to Flash download" state="INSTANTIATED" id="compose"><configurations><configuration key="target-flavor">presentation/delivery</configuration><configuration key="encoding-profile">flash-vga.http</configuration><configuration key="target-tags">engage</configuration><configuration key="source-flavor">presentation/trimmed</configuration></configurations><execution-history/></operation><operation retry-strategy="none" failed-attempts="0" max-attempts="1" exception-handler-workflow="error" fail-on-error="false" description="Encoding presenter (screen) to flash audio download" state="INSTANTIATED" id="compose"><configurations><configuration key="target-flavor">presenter/delivery</configuration><configuration key="encoding-profile">flash-audio.http</configuration><configuration key="target-tags">engage</configuration><configuration key="source-flavor">presenter/trimmed</configuration></configurations><execution-history/></operation><operation retry-strategy="none" failed-attempts="0" max-attempts="1" exception-handler-workflow="error" fail-on-error="false" description="Extracting segments from presentation" state="INSTANTIATED" id="segment-video"><configurations><configuration key="source-flavor">presentation/trimmed</configuration></configurations><execution-history/></operation><operation retry-strategy="none" failed-attempts="0" max-attempts="1" exception-handler-workflow="error" fail-on-error="true" description="Encoding presenter (camera) to search result preview image" state="INSTANTIATED" id="image"><configurations><configuration key="source-tags"></configuration><configuration key="target-flavor">presenter/search+preview</configuration><configuration key="time">1</configuration><configuration key="encoding-profile">search-cover.http</configuration><configuration key="target-tags">engage</configuration><configuration key="source-flavor">presenter/trimmed</configuration></configurations><execution-history/></operation><operation retry-strategy="none" failed-attempts="0" max-attempts="1" exception-handler-workflow="error" fail-on-error="true" description="Encoding presentation (screen) to search result preview image" state="INSTANTIATED" id="image"><configurations><configuration key="source-tags"></configuration><configuration key="target-flavor">presentation/search+preview</configuration><configuration key="time">1</configuration><configuration key="encoding-profile">search-cover.http</configuration><configuration key="target-tags">engage</configuration><configuration key="source-flavor">presentation/trimmed</configuration></configurations><execution-history/></operation><operation retry-strategy="none" failed-attempts="0" max-attempts="1" exception-handler-workflow="error" fail-on-error="true" description="Encoding to feed download formats" state="INSTANTIATED" id="compose"><configurations><configuration key="target-flavor">*/delivery</configuration><configuration key="encoding-profiles">feed-m4a.http, feed-avi.http</configuration><configuration key="target-tags">rss, atom</configuration><configuration key="source-flavor">*/trimmed</configuration></configurations><execution-history/></operation><operation retry-strategy="none" failed-attempts="0" max-attempts="1" exception-handler-workflow="error" fail-on-error="true" description="Encoding presenter (camera) to feed preview image" state="INSTANTIATED" id="image"><configurations><configuration key="source-tags"></configuration><configuration key="target-flavor">presenter/feed+preview</configuration><configuration key="time">1</configuration><configuration key="encoding-profile">feed-cover.http</configuration><configuration key="target-tags">rss, atom</configuration><configuration key="source-flavor">presenter/trimmed</configuration></configurations><execution-history/></operation><operation retry-strategy="none" failed-attempts="0" max-attempts="1" exception-handler-workflow="error" fail-on-error="true" description="Encoding presentation (screen) to feed preview image" state="INSTANTIATED" id="image"><configurations><configuration key="source-tags"></configuration><configuration key="target-flavor">presentation/feed+preview</configuration><configuration key="time">1</configuration><configuration key="encoding-profile">feed-cover.http</configuration><configuration key="target-tags">rss, atom</configuration><configuration key="source-flavor">presentation/trimmed</configuration></configurations><execution-history/></operation><operation retry-strategy="none" failed-attempts="0" max-attempts="1" exception-handler-workflow="error" fail-on-error="false" description="Encoding presentation (screen) to segment preview image" state="INSTANTIATED" id="segmentpreviews"><configurations><configuration key="source-tags"></configuration><configuration key="target-flavor">presentation/segment+preview</configuration><configuration key="encoding-profile">player-slides.http</configuration><configuration key="reference-flavor">presentation/delivery</configuration><configuration key="target-tags">engage</configuration><configuration key="reference-tags">engage</configuration><configuration key="source-flavor">presentation/trimmed</configuration></configurations><execution-history/></operation><operation retry-strategy="none" failed-attempts="0" max-attempts="1" exception-handler-workflow="error" fail-on-error="false" description="Extracting text from presentation segments" state="INSTANTIATED" id="extract-text"><configurations><configuration key="source-tags"></configuration><configuration key="target-tags">engage,archive</configuration><configuration key="source-flavor">presentation/trimmed</configuration></configurations><execution-history/></operation><operation retry-strategy="none" failed-attempts="0" max-attempts="2" exception-handler-workflow="error" fail-on-error="true" description="Distributing to progressive downloads" state="INSTANTIATED" id="distribute-download"><configurations><configuration key="source-tags">engage,atom,rss,-publish</configuration><configuration key="target-tags">publish</configuration><configuration key="check-availability">true</configuration></configurations><execution-history/></operation><operation retry-strategy="none" failed-attempts="0" max-attempts="2" exception-handler-workflow="error" if="rtmp://localhost/vod" fail-on-error="true" description="Distributing to streaming server" state="INSTANTIATED" id="distribute-streaming"><configurations><configuration key="source-tags">engage,-publish</configuration><configuration key="target-tags">publish</configuration></configurations><execution-history/></operation><operation retry-strategy="none" failed-attempts="0" max-attempts="1" fail-on-error="true" description="Removing archive tag from distributed material" state="INSTANTIATED" id="tag"><configurations><configuration key="source-tags">publish</configuration><configuration key="target-tags">-archive</configuration></configurations><execution-history/></operation><operation retry-strategy="none" failed-attempts="0" max-attempts="1" exception-handler-workflow="error" if="${archiveOp}" fail-on-error="true" description="Archiving" state="INSTANTIATED" id="archive"><configurations><configuration key="source-tags">archive</configuration></configurations><execution-history/></operation><operation retry-strategy="none" failed-attempts="0" max-attempts="1" exception-handler-workflow="error" fail-on-error="true" description="Publishing" state="INSTANTIATED" id="publish"><configurations><configuration key="source-tags">publish</configuration></configurations><execution-history/></operation><operation retry-strategy="none" failed-attempts="0" max-attempts="1" fail-on-error="false" description="Cleaning up" state="INSTANTIATED" id="cleanup"><configurations><configuration key="preserve-flavors"></configuration></configurations><execution-history/></operation></operations><configurations><configuration key="workflowSelector">full</configuration><configuration key="distribution">Matterhorn Media Module</configuration><configuration key="archiveOp">true</configuration></configurations><errors/></workflow>
@@ -0,0 +1,228 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
2
+ <workflow xmlns="http://workflow.opencastproject.org" xmlns:ns2="http://org.opencastproject.security" xmlns:ns3="http://mediapackage.opencastproject.org" state="STOPPED" id="stop-completed-id">
3
+ <template>avalon</template>
4
+ <title>Encode, Analyze, and Distribute (Avalon)</title>
5
+ <description>
6
+ A simple workflow that transcodes the media into distribution formats, then sends the resulting distribution files,
7
+ along with their associated metadata, to the distribution channels.
8
+ </description>
9
+ <parent xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
10
+ <ns2:creator>
11
+ <ns2:userName>matterhorn_system_account</ns2:userName>
12
+ <ns2:roles>MATTERHORN_ADMINISTRATOR</ns2:roles>
13
+ <ns2:roles>ROLE_ADMIN</ns2:roles>
14
+ <ns2:roles>ROLE_ANONYMOUS</ns2:roles>
15
+ <ns2:roles>ROLE_OAUTH_USER</ns2:roles>
16
+ <ns2:roles>ROLE_USER</ns2:roles>
17
+ <ns2:organization>mh_default_org</ns2:organization>
18
+ </ns2:creator>
19
+ <ns2:organization id="mh_default_org">
20
+ <ns2:name>Opencast Project</ns2:name>
21
+ <ns2:servers>
22
+ <ns2:server port="8080" name="localhost"/>
23
+ </ns2:servers>
24
+ <ns2:adminRole>ROLE_ADMIN</ns2:adminRole>
25
+ <ns2:anonymousRole>ROLE_ANONYMOUS</ns2:anonymousRole>
26
+ <ns2:properties>
27
+ <ns2:property key="engageui.link_mobile_redirect.description">For more information have a look at the official site.</ns2:property>
28
+ <ns2:property key="engageui.link_mobile_redirect.url">http://opencast.org/matterhorn/</ns2:property>
29
+ <ns2:property key="engageui.annotations.enable">true</ns2:property>
30
+ <ns2:property key="adminui.series_prepopulate.enable">false</ns2:property>
31
+ <ns2:property key="adminui.i18n_tab_episode.enable">true</ns2:property>
32
+ <ns2:property key="avalon.stream_base">file:///home/cjcolvar/Code/avalon/avalon/red5/webapps/avalon/streams</ns2:property>
33
+ <ns2:property key="engageui.link_download.enable">false</ns2:property>
34
+ <ns2:property key="adminui.chunksize">2024</ns2:property>
35
+ <ns2:property key="logo_large">/engage/ui/img/mh_logos/MatterhornLogo_large.png</ns2:property>
36
+ <ns2:property key="adminui.i18n_tab_users.enable">false</ns2:property>
37
+ <ns2:property key="engageui.link_mobile_redirect.enable">false</ns2:property>
38
+ <ns2:property key="engageui.links_media_module.enable">true</ns2:property>
39
+ <ns2:property key="logo_small">/engage/ui/img/mh_logos/OpencastLogo.png</ns2:property>
40
+ </ns2:properties>
41
+ </ns2:organization>
42
+ <ns3:mediapackage start="2015-04-20T17:44:00Z" id="585790ea-e1b9-4b0b-9864-3284bdc7d91b" duration="4929">
43
+ <ns3:title>Bars_512kb.mp4</ns3:title>
44
+ <ns3:media>
45
+ <ns3:track ref="track:2daff409-bd67-4817-b528-94c83aebdeab" type="presenter/delivery" id="track-7">
46
+ <ns3:mimetype>video/mp4</ns3:mimetype>
47
+ <ns3:tags>
48
+ <ns3:tag>engage</ns3:tag>
49
+ <ns3:tag>publish</ns3:tag>
50
+ <ns3:tag>quality-medium</ns3:tag>
51
+ <ns3:tag>streaming</ns3:tag>
52
+ </ns3:tags>
53
+ <ns3:url>rtmp://localhost/vod/mp4:585790ea-e1b9-4b0b-9864-3284bdc7d91b/2daff409-bd67-4817-b528-94c83aebdeab/Bars_512kb</ns3:url>
54
+ <ns3:checksum type="md5">f2156bb6cbe468b23abc987f2479e369</ns3:checksum>
55
+ <ns3:duration>4929</ns3:duration>
56
+ <ns3:audio id="audio-1">
57
+ <ns3:device/>
58
+ <ns3:encoder type="AAC"/>
59
+ <ns3:channels>2</ns3:channels>
60
+ <ns3:bitrate>66150.0</ns3:bitrate>
61
+ </ns3:audio>
62
+ </ns3:track>
63
+ <ns3:track ref="track:fa3563e0-98f3-4b6d-8a41-cae3126c19c7" type="presenter/delivery" id="track-8">
64
+ <ns3:mimetype>video/mp4</ns3:mimetype>
65
+ <ns3:tags>
66
+ <ns3:tag>engage</ns3:tag>
67
+ <ns3:tag>publish</ns3:tag>
68
+ <ns3:tag>quality-high</ns3:tag>
69
+ <ns3:tag>streaming</ns3:tag>
70
+ </ns3:tags>
71
+ <ns3:url>rtmp://localhost/vod/mp4:585790ea-e1b9-4b0b-9864-3284bdc7d91b/fa3563e0-98f3-4b6d-8a41-cae3126c19c7/Bars_512kb</ns3:url>
72
+ <ns3:checksum type="md5">2a7fa52a4bedb0a0335ae947a1a406bc</ns3:checksum>
73
+ <ns3:duration>4929</ns3:duration>
74
+ <ns3:audio id="audio-1">
75
+ <ns3:device/>
76
+ <ns3:encoder type="AAC"/>
77
+ <ns3:channels>2</ns3:channels>
78
+ <ns3:bitrate>66150.0</ns3:bitrate>
79
+ </ns3:audio>
80
+ </ns3:track>
81
+ <ns3:track ref="track:3755d3d6-0486-44d2-86d6-a448811ad608" type="presenter/delivery" id="track-9">
82
+ <ns3:mimetype>video/mp4</ns3:mimetype>
83
+ <ns3:tags>
84
+ <ns3:tag>engage</ns3:tag>
85
+ <ns3:tag>publish</ns3:tag>
86
+ <ns3:tag>quality-low</ns3:tag>
87
+ <ns3:tag>streaming</ns3:tag>
88
+ </ns3:tags>
89
+ <ns3:url>rtmp://localhost/vod/mp4:585790ea-e1b9-4b0b-9864-3284bdc7d91b/3755d3d6-0486-44d2-86d6-a448811ad608/Bars_512kb</ns3:url>
90
+ <ns3:checksum type="md5">10bc3fadce2f81750c9c43f78f37b7c6</ns3:checksum>
91
+ <ns3:duration>4929</ns3:duration>
92
+ <ns3:audio id="audio-1">
93
+ <ns3:device/>
94
+ <ns3:encoder type="AAC"/>
95
+ <ns3:channels>2</ns3:channels>
96
+ <ns3:bitrate>66150.0</ns3:bitrate>
97
+ </ns3:audio>
98
+ </ns3:track>
99
+ </ns3:media>
100
+ <ns3:metadata/>
101
+ <ns3:attachments/>
102
+ </ns3:mediapackage>
103
+ <operations>
104
+ <operation retry-strategy="none" execution-host="http://localhost:8080" failed-attempts="0" max-attempts="1" exception-handler-workflow="error" fail-on-error="true" description="Inspecting the media package" state="SUCCEEDED" job="6936" id="inspect">
105
+ <configurations/>
106
+ <started>1429551900851</started>
107
+ <completed>1429551911997</completed>
108
+ <time-in-queue>0</time-in-queue>
109
+ <execution-history/>
110
+ </operation>
111
+ <operation retry-strategy="none" execution-host="http://localhost:8080" failed-attempts="0" max-attempts="1" exception-handler-workflow="error" fail-on-error="false" description="Preprocessing (1/4)" state="SUCCEEDED" job="6938" id="compose">
112
+ <configurations>
113
+ <configuration key="target-flavor">presenter/source</configuration>
114
+ <configuration key="encoding-profile">epiphan.presenter</configuration>
115
+ <configuration key="source-flavor">multitrack/source</configuration>
116
+ </configurations>
117
+ <started>1429551919329</started>
118
+ <completed>1429551919920</completed>
119
+ <time-in-queue>0</time-in-queue>
120
+ <execution-history/>
121
+ </operation>
122
+ <operation retry-strategy="none" execution-host="http://localhost:8080" failed-attempts="0" max-attempts="1" exception-handler-workflow="error" fail-on-error="true" description="Preprocessing (2/4)" state="SUCCEEDED" job="6939" id="prepare-av">
123
+ <configurations>
124
+ <configuration key="target-flavor">presenter/work</configuration>
125
+ <configuration key="rewrite">false</configuration>
126
+ <configuration key="promiscuous-audio-muxing">true</configuration>
127
+ <configuration key="source-flavor">presenter/source</configuration>
128
+ </configurations>
129
+ <started>1429551925500</started>
130
+ <completed>1429551926003</completed>
131
+ <time-in-queue>0</time-in-queue>
132
+ <execution-history/>
133
+ </operation>
134
+ <operation retry-strategy="none" execution-host="http://localhost:8080" failed-attempts="0" max-attempts="1" exception-handler-workflow="error" if="${trimHold}" fail-on-error="true" description="Preprocessing (3/4)" state="SKIPPED" job="6940" id="compose">
135
+ <configurations>
136
+ <configuration key="target-flavor">presenter/preview</configuration>
137
+ <configuration key="encoding-profile">flash-preview.http</configuration>
138
+ <configuration key="source-flavor">presenter/work</configuration>
139
+ </configurations>
140
+ <started>1429551931614</started>
141
+ <time-in-queue>0</time-in-queue>
142
+ <execution-history/>
143
+ </operation>
144
+ <operation retry-strategy="none" execution-host="http://localhost:8080" failed-attempts="0" max-attempts="1" exception-handler-workflow="error" if="${trimHold}" fail-on-error="true" description="Preprocessing (4/4)" state="SKIPPED" job="6941" id="trim">
145
+ <configurations>
146
+ <configuration key="encoding-profile">trim.work</configuration>
147
+ <configuration key="target-flavor-subtype">trimmed</configuration>
148
+ <configuration key="source-flavor">*/work</configuration>
149
+ </configurations>
150
+ <started>1429551937731</started>
151
+ <time-in-queue>0</time-in-queue>
152
+ <execution-history/>
153
+ </operation>
154
+ <operation retry-strategy="none" execution-host="http://localhost:8080" failed-attempts="0" max-attempts="1" exception-handler-workflow="error" fail-on-error="true" description="Encoding video to mp4 (low quality)" state="SUCCEEDED" job="6942" id="compose">
155
+ <configurations>
156
+ <configuration key="target-flavor">presenter/delivery</configuration>
157
+ <configuration key="encoding-profile">mp4-low.http</configuration>
158
+ <configuration key="target-tags">engage, quality-low</configuration>
159
+ <configuration key="source-flavor">presenter/trimmed</configuration>
160
+ </configurations>
161
+ <started>1429551943834</started>
162
+ <completed>1429551964956</completed>
163
+ <time-in-queue>0</time-in-queue>
164
+ <execution-history/>
165
+ </operation>
166
+ <operation retry-strategy="none" execution-host="http://localhost:8080" failed-attempts="0" max-attempts="1" exception-handler-workflow="error" fail-on-error="true" description="Encoding video to mp4 (medium quality)" state="SUCCEEDED" job="6945" id="compose">
167
+ <configurations>
168
+ <configuration key="target-flavor">presenter/delivery</configuration>
169
+ <configuration key="encoding-profile">mp4-medium.http</configuration>
170
+ <configuration key="target-tags">engage, quality-medium</configuration>
171
+ <configuration key="source-flavor">presenter/trimmed</configuration>
172
+ </configurations>
173
+ <started>1429551968316</started>
174
+ <completed>1429551989470</completed>
175
+ <time-in-queue>0</time-in-queue>
176
+ <execution-history/>
177
+ </operation>
178
+ <operation retry-strategy="none" execution-host="http://localhost:8080" failed-attempts="0" max-attempts="1" exception-handler-workflow="error" fail-on-error="true" description="Encoding video to mp4 (high quality)" state="SUCCEEDED" job="6948" id="compose">
179
+ <configurations>
180
+ <configuration key="target-flavor">presenter/delivery</configuration>
181
+ <configuration key="encoding-profile">mp4-high.http</configuration>
182
+ <configuration key="target-tags">engage, quality-high</configuration>
183
+ <configuration key="source-flavor">presenter/trimmed</configuration>
184
+ </configurations>
185
+ <started>1429551992778</started>
186
+ <completed>1429552013920</completed>
187
+ <time-in-queue>0</time-in-queue>
188
+ <execution-history/>
189
+ </operation>
190
+ <operation retry-strategy="none" execution-host="http://localhost:8080" failed-attempts="0" max-attempts="1" exception-handler-workflow="error" fail-on-error="true" description="Applying access control rules" state="SUCCEEDED" job="6951" id="apply-acl">
191
+ <configurations/>
192
+ <started>1429552017278</started>
193
+ <completed>1429552017854</completed>
194
+ <time-in-queue>0</time-in-queue>
195
+ <execution-history/>
196
+ </operation>
197
+ <operation retry-strategy="none" execution-host="http://localhost:8080" failed-attempts="0" max-attempts="2" exception-handler-workflow="error" if="rtmp://localhost/vod" fail-on-error="true" description="Distributing desktop stream to server" state="SUCCEEDED" job="6952" id="distribute-streaming">
198
+ <configurations>
199
+ <configuration key="source-tags">engage,-publish</configuration>
200
+ <configuration key="target-tags">publish, streaming</configuration>
201
+ </configurations>
202
+ <started>1429552023391</started>
203
+ <completed>1429552034560</completed>
204
+ <time-in-queue>0</time-in-queue>
205
+ <execution-history/>
206
+ </operation>
207
+ <operation retry-strategy="none" execution-host="http://localhost:8080" failed-attempts="0" max-attempts="1" exception-handler-workflow="error" fail-on-error="true" description="Published" state="SUCCEEDED" job="6956" id="publish">
208
+ <configurations>
209
+ <configuration key="source-tags">publish</configuration>
210
+ </configurations>
211
+ <started>1429552041780</started>
212
+ <completed>1429552052895</completed>
213
+ <time-in-queue>0</time-in-queue>
214
+ <execution-history/>
215
+ </operation>
216
+ <operation retry-strategy="none" execution-host="http://localhost:8080" failed-attempts="0" max-attempts="1" fail-on-error="false" description="Cleaning up" state="SUCCEEDED" job="6958" id="cleanup">
217
+ <configurations>
218
+ <configuration key="preserve-flavors"/>
219
+ </configurations>
220
+ <started>1429552060198</started>
221
+ <completed>1429552060674</completed>
222
+ <time-in-queue>0</time-in-queue>
223
+ <execution-history/>
224
+ </operation>
225
+ </operations>
226
+ <configurations/>
227
+ <errors/>
228
+ </workflow>
@@ -0,0 +1,339 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
2
+ <workflow xmlns="http://workflow.opencastproject.org" xmlns:ns2="http://org.opencastproject.security" xmlns:ns3="http://mediapackage.opencastproject.org" state="STOPPED" id="stopped-running-id">
3
+ <template>avalon</template>
4
+ <title>Encode, Analyze, and Distribute (Avalon)</title>
5
+ <description>
6
+ A simple workflow that transcodes the media into distribution formats, then sends the resulting distribution files,
7
+ along with their associated metadata, to the distribution channels.
8
+ </description>
9
+ <parent xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
10
+ <ns2:creator>
11
+ <ns2:userName>matterhorn_system_account</ns2:userName>
12
+ <ns2:roles>MATTERHORN_ADMINISTRATOR</ns2:roles>
13
+ <ns2:roles>ROLE_ADMIN</ns2:roles>
14
+ <ns2:roles>ROLE_ANONYMOUS</ns2:roles>
15
+ <ns2:roles>ROLE_OAUTH_USER</ns2:roles>
16
+ <ns2:roles>ROLE_USER</ns2:roles>
17
+ <ns2:organization>mh_default_org</ns2:organization>
18
+ </ns2:creator>
19
+ <ns2:organization id="mh_default_org">
20
+ <ns2:name>Opencast Project</ns2:name>
21
+ <ns2:servers>
22
+ <ns2:server port="8080" name="localhost"/>
23
+ </ns2:servers>
24
+ <ns2:adminRole>ROLE_ADMIN</ns2:adminRole>
25
+ <ns2:anonymousRole>ROLE_ANONYMOUS</ns2:anonymousRole>
26
+ <ns2:properties>
27
+ <ns2:property key="engageui.link_mobile_redirect.description">For more information have a look at the official site.</ns2:property>
28
+ <ns2:property key="engageui.link_mobile_redirect.url">http://opencast.org/matterhorn/</ns2:property>
29
+ <ns2:property key="engageui.annotations.enable">true</ns2:property>
30
+ <ns2:property key="adminui.series_prepopulate.enable">false</ns2:property>
31
+ <ns2:property key="adminui.i18n_tab_episode.enable">true</ns2:property>
32
+ <ns2:property key="avalon.stream_base">file:///home/cjcolvar/Code/avalon/avalon/red5/webapps/avalon/streams</ns2:property>
33
+ <ns2:property key="engageui.link_download.enable">false</ns2:property>
34
+ <ns2:property key="adminui.chunksize">2024</ns2:property>
35
+ <ns2:property key="logo_large">/engage/ui/img/mh_logos/MatterhornLogo_large.png</ns2:property>
36
+ <ns2:property key="adminui.i18n_tab_users.enable">false</ns2:property>
37
+ <ns2:property key="engageui.link_mobile_redirect.enable">false</ns2:property>
38
+ <ns2:property key="engageui.links_media_module.enable">true</ns2:property>
39
+ <ns2:property key="logo_small">/engage/ui/img/mh_logos/OpencastLogo.png</ns2:property>
40
+ </ns2:properties>
41
+ </ns2:organization>
42
+ <ns3:mediapackage start="2015-04-24T17:44:00Z" id="f2580b38-feb1-4806-a0f8-b630da4e0745" duration="4929">
43
+ <ns3:title>Bars_512kb.mp4</ns3:title>
44
+ <ns3:media>
45
+ <ns3:track type="presenter/source" id="f9447c00-f20c-4eca-b5a2-ce0f60e858fa">
46
+ <ns3:mimetype>video/mp4</ns3:mimetype>
47
+ <ns3:tags/>
48
+ <ns3:url>http://localhost:8080/files/mediapackage/f2580b38-feb1-4806-a0f8-b630da4e0745/f9447c00-f20c-4eca-b5a2-ce0f60e858fa/Bars_512kb.mp4</ns3:url>
49
+ <ns3:checksum type="md5">0db97fbaa44543ac03beb651860fbfaf</ns3:checksum>
50
+ <ns3:duration>4928</ns3:duration>
51
+ <ns3:audio id="audio-1">
52
+ <ns3:device/>
53
+ <ns3:encoder type="AAC"/>
54
+ <ns3:channels>2</ns3:channels>
55
+ <ns3:bitrate>31407.0</ns3:bitrate>
56
+ </ns3:audio>
57
+ <ns3:video id="video-1">
58
+ <ns3:device/>
59
+ <ns3:encoder type="AVC"/>
60
+ <ns3:bitrate>18504.0</ns3:bitrate>
61
+ <ns3:framerate>1.0</ns3:framerate>
62
+ <ns3:resolution>360x240</ns3:resolution>
63
+ <ns3:scantype type="Progressive"/>
64
+ </ns3:video>
65
+ </ns3:track>
66
+ <ns3:track type="presenter/work" id="track-2">
67
+ <ns3:mimetype>video/mp4</ns3:mimetype>
68
+ <ns3:tags/>
69
+ <ns3:url>http://localhost:8080/files/mediapackage/f2580b38-feb1-4806-a0f8-b630da4e0745/f9447c00-f20c-4eca-b5a2-ce0f60e858fa/Bars_512kb.mp4</ns3:url>
70
+ <ns3:checksum type="md5">0db97fbaa44543ac03beb651860fbfaf</ns3:checksum>
71
+ <ns3:duration>4928</ns3:duration>
72
+ <ns3:audio id="audio-1">
73
+ <ns3:device/>
74
+ <ns3:encoder type="AAC"/>
75
+ <ns3:channels>2</ns3:channels>
76
+ <ns3:bitrate>31407.0</ns3:bitrate>
77
+ </ns3:audio>
78
+ <ns3:video id="video-1">
79
+ <ns3:device/>
80
+ <ns3:encoder type="AVC"/>
81
+ <ns3:bitrate>18504.0</ns3:bitrate>
82
+ <ns3:framerate>1.0</ns3:framerate>
83
+ <ns3:resolution>360x240</ns3:resolution>
84
+ <ns3:scantype type="Progressive"/>
85
+ </ns3:video>
86
+ </ns3:track>
87
+ <ns3:track ref="track:track-2" type="presenter/trimmed" id="track-3">
88
+ <ns3:mimetype>video/mp4</ns3:mimetype>
89
+ <ns3:tags/>
90
+ <ns3:url>http://localhost:8080/files/mediapackage/f2580b38-feb1-4806-a0f8-b630da4e0745/f9447c00-f20c-4eca-b5a2-ce0f60e858fa/Bars_512kb.mp4</ns3:url>
91
+ <ns3:checksum type="md5">0db97fbaa44543ac03beb651860fbfaf</ns3:checksum>
92
+ <ns3:duration>4928</ns3:duration>
93
+ <ns3:audio id="audio-1">
94
+ <ns3:device/>
95
+ <ns3:encoder type="AAC"/>
96
+ <ns3:channels>2</ns3:channels>
97
+ <ns3:bitrate>31407.0</ns3:bitrate>
98
+ </ns3:audio>
99
+ <ns3:video id="video-1">
100
+ <ns3:device/>
101
+ <ns3:encoder type="AVC"/>
102
+ <ns3:bitrate>18504.0</ns3:bitrate>
103
+ <ns3:framerate>1.0</ns3:framerate>
104
+ <ns3:resolution>360x240</ns3:resolution>
105
+ <ns3:scantype type="Progressive"/>
106
+ </ns3:video>
107
+ </ns3:track>
108
+ <ns3:track ref="track:track-3" type="presenter/delivery" id="c50f914d-08f9-4556-84bd-1a139b7a1959">
109
+ <ns3:mimetype>video/mp4</ns3:mimetype>
110
+ <ns3:tags>
111
+ <ns3:tag>engage</ns3:tag>
112
+ <ns3:tag>quality-low</ns3:tag>
113
+ </ns3:tags>
114
+ <ns3:url>http://localhost:8080/files/mediapackage/f2580b38-feb1-4806-a0f8-b630da4e0745/c50f914d-08f9-4556-84bd-1a139b7a1959/Bars_512kb.mp4</ns3:url>
115
+ <ns3:checksum type="md5">10bc3fadce2f81750c9c43f78f37b7c6</ns3:checksum>
116
+ <ns3:duration>4929</ns3:duration>
117
+ <ns3:audio id="audio-1">
118
+ <ns3:device/>
119
+ <ns3:encoder type="AAC"/>
120
+ <ns3:channels>2</ns3:channels>
121
+ <ns3:bitrate>66150.0</ns3:bitrate>
122
+ </ns3:audio>
123
+ </ns3:track>
124
+ <ns3:track ref="track:track-3" type="presenter/delivery" id="164e3568-af89-4fdc-af4a-210d55d75c37">
125
+ <ns3:mimetype>video/mp4</ns3:mimetype>
126
+ <ns3:tags>
127
+ <ns3:tag>engage</ns3:tag>
128
+ <ns3:tag>quality-medium</ns3:tag>
129
+ </ns3:tags>
130
+ <ns3:url>http://localhost:8080/files/mediapackage/f2580b38-feb1-4806-a0f8-b630da4e0745/164e3568-af89-4fdc-af4a-210d55d75c37/Bars_512kb.mp4</ns3:url>
131
+ <ns3:checksum type="md5">f2156bb6cbe468b23abc987f2479e369</ns3:checksum>
132
+ <ns3:duration>4929</ns3:duration>
133
+ <ns3:audio id="audio-1">
134
+ <ns3:device/>
135
+ <ns3:encoder type="AAC"/>
136
+ <ns3:channels>2</ns3:channels>
137
+ <ns3:bitrate>66150.0</ns3:bitrate>
138
+ </ns3:audio>
139
+ </ns3:track>
140
+ <ns3:track ref="track:track-3" type="presenter/delivery" id="011f77c0-c991-475e-aa91-919aa094c2c6">
141
+ <ns3:mimetype>video/mp4</ns3:mimetype>
142
+ <ns3:tags>
143
+ <ns3:tag>engage</ns3:tag>
144
+ <ns3:tag>quality-high</ns3:tag>
145
+ </ns3:tags>
146
+ <ns3:url>http://localhost:8080/files/mediapackage/f2580b38-feb1-4806-a0f8-b630da4e0745/011f77c0-c991-475e-aa91-919aa094c2c6/Bars_512kb.mp4</ns3:url>
147
+ <ns3:checksum type="md5">2a7fa52a4bedb0a0335ae947a1a406bc</ns3:checksum>
148
+ <ns3:duration>4929</ns3:duration>
149
+ <ns3:audio id="audio-1">
150
+ <ns3:device/>
151
+ <ns3:encoder type="AAC"/>
152
+ <ns3:channels>2</ns3:channels>
153
+ <ns3:bitrate>66150.0</ns3:bitrate>
154
+ </ns3:audio>
155
+ </ns3:track>
156
+ <ns3:track ref="track:011f77c0-c991-475e-aa91-919aa094c2c6" type="presenter/delivery" id="track-7">
157
+ <ns3:mimetype>video/mp4</ns3:mimetype>
158
+ <ns3:tags>
159
+ <ns3:tag>engage</ns3:tag>
160
+ <ns3:tag>publish</ns3:tag>
161
+ <ns3:tag>quality-high</ns3:tag>
162
+ <ns3:tag>streaming</ns3:tag>
163
+ </ns3:tags>
164
+ <ns3:url>rtmp://localhost/vod/mp4:f2580b38-feb1-4806-a0f8-b630da4e0745/011f77c0-c991-475e-aa91-919aa094c2c6/Bars_512kb</ns3:url>
165
+ <ns3:checksum type="md5">2a7fa52a4bedb0a0335ae947a1a406bc</ns3:checksum>
166
+ <ns3:duration>4929</ns3:duration>
167
+ <ns3:audio id="audio-1">
168
+ <ns3:device/>
169
+ <ns3:encoder type="AAC"/>
170
+ <ns3:channels>2</ns3:channels>
171
+ <ns3:bitrate>66150.0</ns3:bitrate>
172
+ </ns3:audio>
173
+ </ns3:track>
174
+ <ns3:track ref="track:c50f914d-08f9-4556-84bd-1a139b7a1959" type="presenter/delivery" id="track-8">
175
+ <ns3:mimetype>video/mp4</ns3:mimetype>
176
+ <ns3:tags>
177
+ <ns3:tag>engage</ns3:tag>
178
+ <ns3:tag>publish</ns3:tag>
179
+ <ns3:tag>quality-low</ns3:tag>
180
+ <ns3:tag>streaming</ns3:tag>
181
+ </ns3:tags>
182
+ <ns3:url>rtmp://localhost/vod/mp4:f2580b38-feb1-4806-a0f8-b630da4e0745/c50f914d-08f9-4556-84bd-1a139b7a1959/Bars_512kb</ns3:url>
183
+ <ns3:checksum type="md5">10bc3fadce2f81750c9c43f78f37b7c6</ns3:checksum>
184
+ <ns3:duration>4929</ns3:duration>
185
+ <ns3:audio id="audio-1">
186
+ <ns3:device/>
187
+ <ns3:encoder type="AAC"/>
188
+ <ns3:channels>2</ns3:channels>
189
+ <ns3:bitrate>66150.0</ns3:bitrate>
190
+ </ns3:audio>
191
+ </ns3:track>
192
+ <ns3:track ref="track:164e3568-af89-4fdc-af4a-210d55d75c37" type="presenter/delivery" id="track-9">
193
+ <ns3:mimetype>video/mp4</ns3:mimetype>
194
+ <ns3:tags>
195
+ <ns3:tag>engage</ns3:tag>
196
+ <ns3:tag>publish</ns3:tag>
197
+ <ns3:tag>quality-medium</ns3:tag>
198
+ <ns3:tag>streaming</ns3:tag>
199
+ </ns3:tags>
200
+ <ns3:url>rtmp://localhost/vod/mp4:f2580b38-feb1-4806-a0f8-b630da4e0745/164e3568-af89-4fdc-af4a-210d55d75c37/Bars_512kb</ns3:url>
201
+ <ns3:checksum type="md5">f2156bb6cbe468b23abc987f2479e369</ns3:checksum>
202
+ <ns3:duration>4929</ns3:duration>
203
+ <ns3:audio id="audio-1">
204
+ <ns3:device/>
205
+ <ns3:encoder type="AAC"/>
206
+ <ns3:channels>2</ns3:channels>
207
+ <ns3:bitrate>66150.0</ns3:bitrate>
208
+ </ns3:audio>
209
+ </ns3:track>
210
+ </ns3:media>
211
+ <ns3:metadata>
212
+ <ns3:catalog type="dublincore/episode" id="1b7486ad-c2e4-4d4a-b052-16136aea1238">
213
+ <ns3:mimetype>text/xml</ns3:mimetype>
214
+ <ns3:tags/>
215
+ <ns3:url>http://localhost:8080/files/mediapackage/f2580b38-feb1-4806-a0f8-b630da4e0745/1b7486ad-c2e4-4d4a-b052-16136aea1238/dublincore.xml</ns3:url>
216
+ </ns3:catalog>
217
+ </ns3:metadata>
218
+ <ns3:attachments/>
219
+ </ns3:mediapackage>
220
+ <operations>
221
+ <operation retry-strategy="none" execution-host="http://localhost:8080" failed-attempts="0" max-attempts="1" exception-handler-workflow="error" fail-on-error="true" description="Inspecting the media package" state="SUCCEEDED" job="8530" id="inspect">
222
+ <configurations/>
223
+ <started>1429897489264</started>
224
+ <completed>1429897501210</completed>
225
+ <time-in-queue>0</time-in-queue>
226
+ <execution-history/>
227
+ </operation>
228
+ <operation retry-strategy="none" execution-host="http://localhost:8080" failed-attempts="0" max-attempts="1" exception-handler-workflow="error" fail-on-error="false" description="Preprocessing (1/4)" state="SUCCEEDED" job="8534" id="compose">
229
+ <configurations>
230
+ <configuration key="target-flavor">presenter/source</configuration>
231
+ <configuration key="encoding-profile">epiphan.presenter</configuration>
232
+ <configuration key="source-flavor">multitrack/source</configuration>
233
+ </configurations>
234
+ <started>1429897509883</started>
235
+ <completed>1429897510527</completed>
236
+ <time-in-queue>0</time-in-queue>
237
+ <execution-history/>
238
+ </operation>
239
+ <operation retry-strategy="none" execution-host="http://localhost:8080" failed-attempts="0" max-attempts="1" exception-handler-workflow="error" fail-on-error="true" description="Preprocessing (2/4)" state="SUCCEEDED" job="8536" id="prepare-av">
240
+ <configurations>
241
+ <configuration key="target-flavor">presenter/work</configuration>
242
+ <configuration key="rewrite">false</configuration>
243
+ <configuration key="promiscuous-audio-muxing">true</configuration>
244
+ <configuration key="source-flavor">presenter/source</configuration>
245
+ </configurations>
246
+ <started>1429897516651</started>
247
+ <completed>1429897517181</completed>
248
+ <time-in-queue>0</time-in-queue>
249
+ <execution-history/>
250
+ </operation>
251
+ <operation retry-strategy="none" execution-host="http://localhost:8080" failed-attempts="0" max-attempts="1" exception-handler-workflow="error" if="${trimHold}" fail-on-error="true" description="Preprocessing (3/4)" state="SKIPPED" job="8537" id="compose">
252
+ <configurations>
253
+ <configuration key="target-flavor">presenter/preview</configuration>
254
+ <configuration key="encoding-profile">flash-preview.http</configuration>
255
+ <configuration key="source-flavor">presenter/work</configuration>
256
+ </configurations>
257
+ <started>1429897523476</started>
258
+ <time-in-queue>0</time-in-queue>
259
+ <execution-history/>
260
+ </operation>
261
+ <operation retry-strategy="none" execution-host="http://localhost:8080" failed-attempts="0" max-attempts="1" exception-handler-workflow="error" if="${trimHold}" fail-on-error="true" description="Preprocessing (4/4)" state="SKIPPED" job="8538" id="trim">
262
+ <configurations>
263
+ <configuration key="encoding-profile">trim.work</configuration>
264
+ <configuration key="target-flavor-subtype">trimmed</configuration>
265
+ <configuration key="source-flavor">*/work</configuration>
266
+ </configurations>
267
+ <started>1429897530267</started>
268
+ <time-in-queue>0</time-in-queue>
269
+ <execution-history/>
270
+ </operation>
271
+ <operation retry-strategy="none" execution-host="http://localhost:8080" failed-attempts="0" max-attempts="1" exception-handler-workflow="error" fail-on-error="true" description="Encoding video to mp4 (low quality)" state="SUCCEEDED" job="8539" id="compose">
272
+ <configurations>
273
+ <configuration key="target-flavor">presenter/delivery</configuration>
274
+ <configuration key="encoding-profile">mp4-low.http</configuration>
275
+ <configuration key="target-tags">engage, quality-low</configuration>
276
+ <configuration key="source-flavor">presenter/trimmed</configuration>
277
+ </configurations>
278
+ <started>1429897537092</started>
279
+ <completed>1429897558896</completed>
280
+ <time-in-queue>0</time-in-queue>
281
+ <execution-history/>
282
+ </operation>
283
+ <operation retry-strategy="none" execution-host="http://localhost:8080" failed-attempts="0" max-attempts="1" exception-handler-workflow="error" fail-on-error="true" description="Encoding video to mp4 (medium quality)" state="SUCCEEDED" job="8542" id="compose">
284
+ <configurations>
285
+ <configuration key="target-flavor">presenter/delivery</configuration>
286
+ <configuration key="encoding-profile">mp4-medium.http</configuration>
287
+ <configuration key="target-tags">engage, quality-medium</configuration>
288
+ <configuration key="source-flavor">presenter/trimmed</configuration>
289
+ </configurations>
290
+ <started>1429897564464</started>
291
+ <completed>1429897586266</completed>
292
+ <time-in-queue>0</time-in-queue>
293
+ <execution-history/>
294
+ </operation>
295
+ <operation retry-strategy="none" execution-host="http://localhost:8080" failed-attempts="0" max-attempts="1" exception-handler-workflow="error" fail-on-error="true" description="Encoding video to mp4 (high quality)" state="SUCCEEDED" job="8545" id="compose">
296
+ <configurations>
297
+ <configuration key="target-flavor">presenter/delivery</configuration>
298
+ <configuration key="encoding-profile">mp4-high.http</configuration>
299
+ <configuration key="target-tags">engage, quality-high</configuration>
300
+ <configuration key="source-flavor">presenter/trimmed</configuration>
301
+ </configurations>
302
+ <started>1429897591824</started>
303
+ <completed>1429897613645</completed>
304
+ <time-in-queue>0</time-in-queue>
305
+ <execution-history/>
306
+ </operation>
307
+ <operation retry-strategy="none" execution-host="http://localhost:8080" failed-attempts="0" max-attempts="1" exception-handler-workflow="error" fail-on-error="true" description="Applying access control rules" state="SUCCEEDED" job="8548" id="apply-acl">
308
+ <configurations/>
309
+ <started>1429897619053</started>
310
+ <completed>1429897619769</completed>
311
+ <time-in-queue>0</time-in-queue>
312
+ <execution-history/>
313
+ </operation>
314
+ <operation retry-strategy="none" execution-host="http://localhost:8080" failed-attempts="0" max-attempts="2" exception-handler-workflow="error" if="rtmp://localhost/vod" fail-on-error="true" description="Distributing desktop stream to server" state="SUCCEEDED" job="8549" id="distribute-streaming">
315
+ <configurations>
316
+ <configuration key="source-tags">engage,-publish</configuration>
317
+ <configuration key="target-tags">publish, streaming</configuration>
318
+ </configurations>
319
+ <started>1429897625869</started>
320
+ <completed>1429897637935</completed>
321
+ <time-in-queue>0</time-in-queue>
322
+ <execution-history/>
323
+ </operation>
324
+ <operation retry-strategy="none" failed-attempts="0" max-attempts="1" exception-handler-workflow="error" fail-on-error="true" description="Published" state="INSTANTIATED" job="8553" id="publish">
325
+ <configurations>
326
+ <configuration key="source-tags">publish</configuration>
327
+ </configurations>
328
+ <execution-history/>
329
+ </operation>
330
+ <operation retry-strategy="none" failed-attempts="0" max-attempts="1" fail-on-error="false" description="Cleaning up" state="INSTANTIATED" id="cleanup">
331
+ <configurations>
332
+ <configuration key="preserve-flavors"/>
333
+ </configurations>
334
+ <execution-history/>
335
+ </operation>
336
+ </operations>
337
+ <configurations/>
338
+ <errors/>
339
+ </workflow>