opencms days 2014 - opencms 9 - a video tube?
TRANSCRIPT
Video what?
I am loving it.But mind the gap!
Me too! Love the funnyconversations every morning!
Hej, I am a video clip
Video what?
Intersection
Name: OpenCmsOperated: Alkacon GmbH
Name: SkinnDrivaOperated: componio GmbH
• Line = Video channel• Train = Video • Train Passengers = Subscribers• Conversations = Video likes, comments, ...• Intersections = Cross post/Content sharing
Sure, it even computes
Video what?
• Store video data in the VFS of OpenCms• Use HTML5 video tag to render videos• OpenCms CRE to handle subscriptions• Use rating, comment and social equity container
element (CEL) to enrich UX
OpenCms: Top down approach
Video what?
• Monkaa is a blue furred, pink faced monkey who consumes a crystallized meteorite, making Monkaa invincibly strong and too hot to handle. Exploring his superpower Monkaa zooms into an unexplored universe.
• Size: ~152 MB• Download:
https://cloud.blender.org/open-movie/monkaa/
A typical video
OpenCms and videos
Heap anyone?
OpenCms and videos
Initial Installation Upload Publish Restart Publish Copy Publish Overwrite Publish0
200
400
600
800
1000
1200
Max Heap
Actions
MB
Heap anyone?
OpenCms and videos
Initial Installation Upload Publish Restart Publish Copy Publish Overwrite Publish
-200
0
200
400
600
800
1000
1200
Upload Delta DB RAM Max Heap
Actions
MB
Heap anyone?
OpenCms and videos
Initial Installation Upload Publish Restart Publish Copy Publish Overwrite Publish
-200
0
200
400
600
800
1000
1200
Upload Delta DB RAM Max Heap
Actions
MB
Heap anyone?
OpenCms and videos
Initial Installation Upload Publish Restart Publish Copy Publish Overwrite Publish
-200
0
200
400
600
800
1000
1200
Upload Delta DB RAM Max Heap
Actions
MB
java.lang.OutOfMemoryError: Java heap space
Solution
OpenCms and videos
• Store videos externally
– e.g. RFS, we have chosen ownCloud• Introduce a proxy element in OpenCms
– simple structured content CEL• Integrate external storage with special driver
– e.g. metamesh's RFS driver
From the w3c wiki
HTML5 and video codecs
• The HTML5 specification does not require a video codec to be supported by all user agents. Thus, one need to provide alternate sources to ensure proper user experience in the existing user agents. Using Ogg/Theora/Vorbis and MP4/H.264/AAC seems to cover most of the cases out there (if not all). However, Ogg/Theora/Vorbis is being replaced in favor of WebM nowadays.
Solution
HTML5 and video codecs
• Use a versatile and standard conform video player
– JWPlayer in our case– Ensures proper HTML code generation– Hides complexity while offering editor freedom (e.g.
aspect ratio, volume, controls)• Encode videos with FLV, H.264 and VP8• Make a wish that the video war is soon over –
the browser war has been bloody enough
CRE FTW!
Channels / Subscriptions
• OpenCms subscription API (from 8.5.x)• Associate individual CMS resources with OpenCms
users• Two major use cases:
– Personalization● Users can subscribe their favourite content● Subscription status can be shown wherever appropriate
– Notifications● Notify users of fresh/updated content
Channels
Channels / Subscriptions
• OpenCms categories allow for arbitrary taxonomies
• A set of categories defines a channel• Subscription engine allows to subscribe and
unsubscribe resources• CRE allows to find resources for specific
categories
Solution
Channels / Subscriptions
• Dedicated CEL to list available channels• Video (proxy element) gets associated with a channel
via categories
– Can be easily a member of many channels– Harmonizes with Subscription API (resources need to
be served by the VFS vs. RFS)• Channel subscriptions are stored as “Additional User
Information”
Solution
Channels / Subscriptions
• Enhanced subscription engine to speed up channel look-up
– OBS: The subscription API does not offer an efficient way to accomplish this
– OBS: Need to extra check if resources are deleted or expired
– makes heavy use of SOLR– Custom SQL queries an POJOs to speed up lookup
of user channel subscriptions