Slides and videos from the Embedded Linux Conference Europe 2016

Last month, the entire Bootlin engineering team attended the Embedded Linux Conference Europe in Berlin. The slides and videos of the talks have been posted, including the ones from the seven talks given by Bootlin engineers:

  • Alexandre Belloni presented on ASoC: Supporting Audio on an Embedded Board, slides and video.
  • Boris Brezillon presented on Modernizing the NAND framework, the big picture, slides and video.
  • Boris Brezillon, together with Richard Weinberger from sigma star, presented on Running UBI/UBIFS on MLC NAND, slides and video.
  • Grégory Clement presented on Your newer ARM64 SoC Linux check list, slides and video.
  • Thomas Petazzoni presented on Anatomy of cross-compilation toolchains, slides and video.
  • Maxime Ripard presented on Supporting the camera interface on the C.H.I.P, slides and video.
  • Quentin Schulz and Antoine Ténart presented on Building a board farm: continuous integration and remote control, slides and video.

Support for the Allwinner VPU in the mainline Linux kernel

Over the last few years, and most recently with the support for the C.H.I.P platform, Bootlin has been heavily involved in initiating and improving the support in the mainline Linux kernel for the Allwinner ARM processors. As of today, a large number of hardware features of the Allwinner processors, especially the older ones such as the A10 or the A13 used in the CHIP, are usable with the mainline Linux kernel, including complex functionality such as display support and 3D acceleration. However, one feature that was still lacking is proper support for the Video Processing Unit (VPU) that allows to accelerate in hardware the decoding and encoding of popular video formats.

During the past two months, Florent Revest, a 19 year old intern at Bootlin worked on a mainline solution for this Video Processing Unit. His work followed the reverse engineering effort of the Cedrus project, and this topic was also listed as a High Priority Reverse Engineering Project by the FSF.

The internship resulted in a new sunxi-cedrus driver, a Video4Linux memory-to-memory decoder kernel driver and a corresponding VA-API backend, which allows numerous userspace applications to use the decoding capabilities. Both projects have both been published on Github:

Currently, the combination of the kernel driver and VA-API backend supports MPEG2 and MPEG4 decoding only. There is for the moment no support for encoding, and no support for H264, though we believe support for both aspects can be added within the architecture of the existing driver and VA-API backend.

A first RFC patchset of the kernel driver has been sent to the linux-media mailing list, and a complete documentation providing installation information and architecture details has been written on the linux-sunxi’s wiki.

Here is a video of VLC playing a MPEG2 demo video on top of this stack on the Next Thing’s C.H.I.P:

Videos of XDC2014 and Kernel Recipes 2014

Recently, two interesting conferences took place in France: the X.org developer conference (in Bordeaux, October 8th-10th) and the Kernel Recipes conference (in Paris, September 25th-26th).

X.org Foundation logo

Kernel Recipes logo

Both conferences have now published videos and slides of the different talks:

  • for the XDC 2014 conference, they are available in the program page
  • for the Kernel Recipes conference, they are available from the schedule page

It also means that the video of the talk given by Bootlin engineer Maxime Ripard about the support for Allwinner processors in the kernel is now available: video, slides.

https://www.youtube.com/watch?v=yJmZkzq651Q

Videos from Embedded Linux Conference 2013

San FranciscoBetter late than never: we are finally publishing a set of videos of 24 talks from the last Embedded Linux Conference, which took place earlier this year in San Francisco, California. These videos are coming in addition to the videos that the Linux Foundation had posted from this conference on video.linux.com.

Our videos are the ones from other talks, covering topics such as I2C, the BeagleBone, the Common Display Framework, Kernel debugging, Memory management in the kernel, usage of SPDX in Yocto, the SCHED_DEADLINE scheduler, the management of ARM SoC support in the kernel, real-time, kernel testing, and more. We’re also including below the full set of videos from the Linux Foundation, so that this page nicely gives links to all the videos from Embedded Linux Conference 2013.

Our videos

David AndersVideo capture
Texas Instruments
Board Bringup: You, Me and I2C
Slides
Video (38 minutes):
full HD (269M), 800×450 (151M)

Jayneil DalalVideo capture
Texas Instruments
Beaglebone Hands-On Tutorial
Slides
Video (66 minutes):
full HD (444M), 800×450 (249M)

Jesse BarkerVideo capture
Linaro
Common Display Framework BoF
Video (113 minutes):
full HD (761M), 800×450 (389M)

Alison ChaikenVideo capture
Mentor Embedded Software Division
Embedded Linux Takes on the Hard Problems of Automotive
Slides
Video (54 minutes):
full HD (359M), 800×450 (152M)

Kevin ChalmersVideo capture
Texas Instruments
RFC: Obtaining Management Buy-in for Mainline Development
Slides
Video (36 minutes):
full HD (253M), 800×450 (140M)

Michael ChristoffersonVideo capture
Enea
Yocto Meta-Virtualization Layer Project
Slides
Video (47 minutes):
full HD (330M), 800×450 (187M)

Kevin DankwardtVideo capture
K Computing
Survey of Linux Kernel Debugging Techniques
Slides
Video (50 minutes):
full HD (350M), 800×450 (206M)

Ezequiel Alfredo GarciaVideo capture
VanguardiaSur
Kernel Dynamic Memory Allocation Tracking and Reduction
Slides
Video (56 minutes):
full HD (398M), 800×450 (235M)

Christopher FriedtVideo capture
Research In Motion
Gentoo-Bionic: We Can Rebuild Him. Better. Stronger. Faster.
Slides
Video (39 minutes):
full HD (272M), 800×450 (154M)

Gregoire GentilVideo capture
Always Innovating
Lessons Learned in Designing a Self-Video, Self-Hovering Nano Copter
Video (56 minutes):
full HD (391M), 800×450 (225M)

Mark Gisi, Mark HatleVideo capture
Wind River Systems
Leveraging SPDX with Yocto
Video (53 minutes):
full HD (376M), 800×450 (204M)

Yoshitake KobayashiVideo capture
TOSHIBA Corporation
Deadline Miss Detection with SCHED_DEADLINE
Slides
Video (38 minutes):
full HD (274M), 800×450 (158M)

Tetsuyuki KobayashiVideo capture
Kiyoto Microcomputer
Tips of Malloc and Free
Slides
Video (39 minutes):
full HD (277M), 800×450 (163M)

Tristan LelongVideo capture
Adeneo Embedded
Debugging on a Production System
Slides
Video (51 minutes):
full HD (354M), 800×450 (195M)

Noor UI MubeenVideo capture
Intel Technology India Pvt Ltd
Making Gadgets Really “cool”
Slides
Video (45 minutes):
full HD (298M), 800×450 (122M)

Hisao MunakataVideo capture
Renesas Electronics
How to Cook the LTSI Kernel with Yocto Recipe
Slides
Video (42 minutes):
full HD (295M), 800×450 (166M)

Olof JohanssonVideo capture
Google
Anatomy of the arm-soc git tree
Slides
Video (50 minutes):
full HD (348M), 800×450 (192M)

Mark OrvekVideo capture
Linaro
Application Diversity Demands Accelerated Linux Innovation
Slides
Video (38 minutes):
full HD (273M), 800×450 (158M)

Thomas PetazzoniVideo capture
Bootlin
Your New ARM SoC Linux Support Checklist!
Slides
Video (60 minutes):
full HD (418M), 800×450 (231M)

Matt PorterVideo capture
Texas Instruments, Inc.
Kernel Testing Tools and Techniques
Slides
Video (60 minutes):
full HD (405M), 800×450 (230M)

Brent RomanVideo capture
Monterey Bay Aquarium Research Institute
Making Linux do Hard Real-Time
Slides
Video (24 minutes):
full HD (173M), 800×450 (101M)

Mans RullgardVideo capture
ARM/Linaro
Designing for Optimisation
Slides
Video (50 minutes):
full HD (353M), 800×450 (202M)

Chris SimmondsVideo capture
2net Limited
The End of Embedded Linux (as we know it)
Video (46 minutes):
full HD (293M), 800×450 (137M)

Hunyue YauVideo capture
HY Research LLC
uCLinux for Custom Mobile Devices
Slides
Video (40 minutes):
full HD (283M), 800×450 (151M)

Linux Foundation videos

Joo-Young HwangVideo capture
Samsung Electronics Co., Ltd.
F2FS, Flash-Friendly File System
Slides
Video : on video.linux.com

Linus WalleijVideo capture
ST-Ericsson
Pin Control and GPIO Update
Slides
Video : on video.linux.com

Mark GrossVideo capture
Intel
The ‘Embedded Problem’ as Experienced by Intel’s Reference Phones

Video : on video.linux.com

Gap-Joo NaVideo capture
Electronics and Telecommunications Research Institute (ETRI)
Task Scheduling for Multicore Embedded Devices
Slides
Video : on video.linux.com

Joel FernandesVideo capture
Texas Instruments, Inc
FIT Image Format: Inspired by Kernel’s Device Tree
Slides
Video : on video.linux.com

Steven RostedtVideo capture
Red Hat
Understanding PREEMPT_RT (The Real-Time Patch)
Slides
Video : on video.linux.com

Ruud DerwigVideo capture
Synopsys
Using GStreamer for Seamless Off-loading Audio Processing to a DSP
Slides
Video : on video.linux.com

Rob LandleyVideo capture
Multicelluar
Toybox: Writing a new Linux Command Line from Scratch
Slides
Video : on video.linux.com

Denys DmytriyenkoVideo capture
Texas Instruments
Pre-built Binary Toolchains in Yocto Project
Slides
Video : on video.linux.com

Anna DushistovaVideo capture
Me, Myself and I
Target Communication Framework: One Link to Rule Them All
Slides
Video : on video.linux.com

Jim HuangVideo capture
0xlab
olibc: Another C Runtime Library for Embedded Linux
Slides
Video : on video.linux.com

Jake EdgeVideo capture
LWN.net
Namespaces for Security
Slides
Video : on video.linux.com

Beth FlanaganVideo capture
Intel
Listening to your Users: Refactoring the Yocto Project Autobuilder

Video : on video.linux.com

Katsuya MatsubaraVideo capture
– , IGEL Co., Ltd.
Optimizing GStreamer Video Plugins: A Case Study with Renesas SoC Platform
Slides
Video : on video.linux.com

Behan WebsterVideo capture
Converse in Code Inc
LLVMLinux: Compiling the Linux Kernel with LLVM
Slides
Video : on video.linux.com

Jim Zemlin, George GreyVideo capture
The Linux Foundation, Linaro
Working Together to Accelerate Linux Development

Video : on video.linux.com

Andrew ChathamVideo capture
Google
Google’s Self-Driving Cars: The Technology, Capabilities & Challenges
Video : on video.linux.com

Laurent PinchartVideo capture
Ideas on board SPRL
Anatomy of an Embedded KMS Driver
Slides
Video : on video.linux.com

Scott GarmanVideo capture
Intel Open Source Technology Center
Atom for Embedded Linux Hackers and the DIY Community
Video : on video.linux.com

Mike AndersonVideo capture
The PTR Group, Inc.
Controlling Multi-Core Race Conditions on Linux/Android
Video : on video.linux.com

Tracey Erway, Nithya RuffVideo capture
Intel Corporation, Synopsys
Can You Market an Open Source Project?
Video : on video.linux.com

Dave StewartVideo capture
Intel
Code Sweat: Embed with Nightmares
Video : on video.linux.com

Gregory ClementVideo capture
Bootlin
Common Clock Framework: How to Use It
Slides
Video : on video.linux.com

Sean HudsonVideo capture
Mentor Graphics
Building a Custom Linux Distribution with the Yocto Project
Slides
Video : on video.linux.com

Tzugikazu SHibataVideo capture
NEC
How to Decide the Linux Kernel Version for the Embedded Products to Keep Maintaining Long Term
Slides
Video : on video.linux.com

Mathieu PoirerVideo capture
Linaro
In Kernel Switcher: A Solution to Support ARM’s New big.LITTLE implementation
Slides
Video : on video.linux.com

Russell DillVideo capture
Texas Instruments
Extending the swsusp Hibernation Framework to ARM
Slides
Video : on video.linux.com

John MehaffeyVideo capture
Mentor Graphics
Security Best Practices for Embedded Systems
Slides
Video : on video.linux.com

Leandro PereiraVideo capture
ProFUSION Embedded System
EasyUI: No Nonsense Mobile Application Development with EFL

Video : on video.linux.com

Khem RajVideo capture
OpenEmbedded
Bringing kconfig to EGLIBC
Slides
Video : on video.linux.com

Aaditya KumarVideo capture
Sony India Software Centre Pvt Lltd
An Insight into the Advanced XIP Filesystem (AXFS)
Slides
Video : on video.linux.com

Pantelis AntoniouVideo capture
Antoniou Consulting
Adventures in (simulated) Assymmetric Scheduling
Slides
Video : on video.linux.com

Mike Anderson, The PTR group; Zach Pfeffer, Linaro; Tim Bird, Sony Network Entertainment; David Stewart, Intel; Karim Yaghmour, Opersys (Moderator)Video capture

Is Android the new Embedded Linux

Video : on video.linux.com

George Grey, CEO, Linaro, Jim Zemlin, Executive Director, The Linux FoundationVideo capture

Working Together to Accelerate Linux Development

Video : on video.linux.com

Frank RowandVideo capture
Sony Network Entertainment
Using and Understanding the Real-Time Cyclictest Benchmark
Slides
Video : on video.linux.com

Videos of the Embedded Linux Conference Europe 2012

With the approaching Embedded Linux Conference, to be held February 20-22 in San Francisco, we felt that it was time to finally fight with ffmpeg/libav and get the videos we had taken from the last Embedded Linux Conference Europe talks, encode them and publish them online. So here they are, as what we could consider a late Christmas gift.

There are so many talks that it might be hard to watch everything. So I’d like to share with you my preferred talks from this last ELCE (of course, I haven’t been able to see all talks, but only a third of them, so the following selection is only taken from the talks I have seen) :

  • For sure, the talk I have preferred is the Understanding PREEMPT_RT (The Real-Time Patch) talk from Steven Rostedt (Redhat). In an hour, Steven explained some very interesting internals of PREEMPT_RT, in a very clear way. Definitely a must see, in my opinion.
  • I also enjoyed the ARC Linux: From a Tumbling Toddler to a Graduating Teen talk from Vineet Gupta (Synopsys). While talking about a specific new CPU architecture that probably most of us have never used, Vineet is able to tell a very nice story by bringing you through various issues they had while porting Linux on this new CPU architecture, giving interesting and funny technical details in the process.
  • The talk about Regmap: The Power of Subsystems and Abstractions from Mark Brown (Wolfson Microelectronics) was also very good, in that it clearly explained the need for this new kernel subsystem, how the API works, etc. Definitely the kind of talk I’d like to see about more kernel subsystems: in an hour, you learn the philosophy of the subsystem, why it’s there, how it has been designed to solve the original problems, and the basics of its APIs. It’s often what’s missing from an API documentation: the philosophy behind it. Hour long talks that are capable of conveying this philosophy are therefore highly useful.
  • As usual, David Anders talk, this time about Board bringup: you, me and I2C has been very nice as well. It is a good introduction about electronics related to I2C, it doesn’t go very far for anyone having an existing experience of I2C, but is indeed a very good introduction for those who don’t. I really enjoyed the good explanation about pull-up resistors.
  • Finally, another talk that was great is Samuel Ortiz (Intel) talk about Near Field Communication with Linux. A bit like the Regmap talk, the great benefit of Samuel talk is that in an hour, he went through the different hardware available for NFC in Linux, the architecture of the software stack, the different software components that exist, their strenghts and weaknesses and so on. So without any prior knowledge about NFC, you get at the end of the talk a very good coverage of how this technology is supported by Linux today.

Well, enough with my suggestions, here is the complete list of videos:

Matt RanostayVideo capture
Beaglebone: The Perfect Telemetry Platform?
Slides
Video (24 minutes):
full HD (153M), 800×450 (74M)

Jim HuangVideo capture
0xlab
Implement Checkpointing for Android
Slides
Video (43 minutes):
full HD (291M), 800×450 (168M)

Wolfram SangVideo capture
Pengutronix e.K.
Maintainer’s Diary: Devicetree and Its Stumbling Blocks
Slides
Video (49 minutes):
full HD (329M), 800×450 (160M)

Matthias BruggerVideo capture
ISEE 2007 S.L.
A War Story: Porting Android 4.0 to a Custom Board
Slides
Video (34 minutes):
full HD (230M), 800×450 (106M)

Kishon Vijay AbrahamVideo capture
Texas Instruments
USB Debugging and Profiling Techniques
Slides
Video (40 minutes):
full HD (245M), 800×450 (109M)

Alan OttVideo capture
Signal 11 Software
Wireless Networking with IEEE 802.15.4 and 6LoWPAN
Slides
Video (52 minutes):
full HD (339M), 800×450 (156M)

João Paulo Rechi VitaVideo capture
INdT
Bluetooth Smart devices and Low Energy support on Linux
Slides
Video (36 minutes):
full HD (250M), 800×450 (116M)

Peter StugeVideo capture
OpenOCD: Hardware Debugging and More
Video (47 minutes):
full HD (316M), 800×450 (155M)

Alessandro RubiniVideo capture
PF_ZIO: Using Network Frames to Convey I/O Data and Meta-Data
Slides
Video (48 minutes):
full HD (317M), 800×450 (141M)

Joo-Young HwangVideo capture
Samsung
A New File System Designed for Flash Storage in Mobile
Slides
Video (54 minutes):
full HD (369M), 800×450 (152M)

Alexandre BelloniVideo capture
Adeneo Embedded
Boot Time Optimizations
Slides
Video (39 minutes):
full HD (261M), 800×450 (129M)

Philipp ZabelVideo capture
Pengutronix e.K.
Modular Graphics on Embedded ARM
Slides
Video (32 minutes):
full HD (217M), 800×450 (100M)

Karim YaghmourVideo capture
Opersys
Inside Android’s User Interface
Slides
Video (42 minutes):
full HD (284M), 800×450 (117M)

Samuel OrtizVideo capture
Intel
Near Field Communication with Linux
Slides
Video (35 minutes):
full HD (232M), 800×450 (92M)

Arnout VandecappelleVideo capture
Essensium/Mind
Upgrading Without Bricking
Slides
Video (56 minutes):
full HD (373M), 800×450 (172M)

Tim BirdVideo capture
Sony Network Entertainment
BoFs: Developer Tools and Methods: Tips & Tricks
Slides
Video (62 minutes):
full HD (395M), 800×450 (160M)

Matt LockeVideo capture
Texas Instruments
Are We Headed for a Complexity Apocalypse in Embedded SoCs?
Video (27 minutes):
full HD (167M), 800×450 (76M)

Sascha HauerVideo capture
Pengutronix e.K.
Barebox Bootloader
Slides
Video (47 minutes):
full HD (313M), 800×450 (134M)

Benjamin ZoresVideo capture
Alcatel-Lucent
Dive Into Android Networking: Adding Ethernet Connectivity
Slides
Video (46 minutes):
full HD (270M), 800×450 (118M)

Jiyoun ParkVideo capture
Samsung
Experiences as an OEM with Development of UI Frameworks
Video (42 minutes):
full HD (282M), 800×450 (158M)

Keshava MunegowdaVideo capture
Texas Instruments
FFSB and IOzone: File system Benchmarking Tools, Features and Internals
Slides
Video (56 minutes):
full HD (367M), 800×450 (171M)

Chris SimmondsVideo capture
2net Limited
The End of Embedded Linux (As We Know It)
Slides
Video (47 minutes):
full HD (324M), 800×450 (150M)

Steven RostedtVideo capture
Red Hat
Understanding PREEMPT_RT (The Real-Time Patch)
Slides
Video (61 minutes):
full HD (412M), 800×450 (186M)

Klaas van GendVideo capture
Vector Fabrics
Application Parallelization for Multi-Core Android Devices
Slides
Video (44 minutes):
full HD (293M), 800×450 (124M)

David AndersVideo capture
Texas Instruments
Board Bringup: You, Me, and I2C
Slides
Video (38 minutes):
full HD (217M), 800×450 (97M)

Rama PallalaVideo capture
Intel
Linux Power Supply Charging Subsystem
Video (35 minutes):
full HD (213M), 800×450 (83M)

Agusti FontquerniVideo capture
ISEE 2007 S.L.
Embedded Linux RADAR Device
Slides
Video (50 minutes):
full HD (331M), 800×450 (140M)

Matt PorterVideo capture
Texas Instruments
What’s Old Is New: A 6502-based Remote Processor
Slides
Video (58 minutes):
full HD (389M), 800×450 (181M)

Thomas PetazzoniVideo capture
Bootlin
Your New ARM SoC Linux Support Check-List
Slides
Video (56 minutes):
full HD (362M), 800×450 (150M)

Tracey M. Erway and Nithya A. RuffVideo capture
Intel and Synopsys
Can You Market an Open Source Project?
Slides
Video (43 minutes):
full HD (272M), 800×450 (103M)

Lars KnollVideo capture
Qt Project
Qt on Embedded Systems
Video (50 minutes):
full HD (337M), 800×450 (175M)

Koen KooiVideo capture
Circuitco
Supporting 200 Different Expansionboards: The Broken Promise of Devicetree
Slides
Video (37 minutes):
full HD (232M), 800×450 (102M)

Anna DushistovaVideo capture
Eclipse and Embedded Linux Developers: What it Can and Cannot Do For You
Slides
Video (58 minutes):
full HD (378M), 800×450 (167M)

Dave StewartVideo capture
Intel
Yocto Project Overview and Update
Video (52 minutes):
full HD (338M), 800×450 (139M)

Vineet GuptaVideo capture
Synopsys
ARC Linux: From a Tumbling Toddler to a Graduating Teen
Slides
Video (44 minutes):
full HD (269M), 800×450 (113M)

Laurent PinchartVideo capture
Ideas on Board
DRM/KMS, FB and V4L2: How to Select a Graphics and Video API
Slides
Video (48 minutes):
full HD (328M), 800×450 (145M)

Frank RowandVideo capture
Sony Network Entertainment
Practical Data Visualization
Slides
Video (46 minutes):
full HD (308M), 800×450 (141M)

Marcin JuszkiewiczVideo capture
Linaro
ARM 64-Bit Bootstrapping with OpenEmbedded
Slides
Video (32 minutes):
full HD (208M), 800×450 (88M)

Wim DecroixVideo capture
TPVision
Practical Experiences With Software Crash Analysis in TV
Slides
Video (35 minutes):
full HD (224M), 800×450 (87M)

Mark BrownVideo capture
Wolfson Microelectronics
Regmap: The Power of Subsystems and Abstractions
Video (44 minutes):
full HD (282M), 800×450 (124M)

Hans VerkuilVideo capture
Cisco Systems
Video4Linux: Current Status and Future Work
Slides
Video (33 minutes):
full HD (217M), 800×450 (100M)

Holger BehrensVideo capture
Wind River
Yocto Layer for In-Vehicle Infotainment
Slides
Video (43 minutes):
full HD (284M), 800×450 (123M)

Tero KristoVideo capture
Texas Instruments
Debugging Embedded Linux (Kernel) Power Management
Slides
Video (36 minutes):
full HD (241M), 800×450 (108M)

Martin BisVideo capture
BIS
Real-Time Linux in Industrial Appliances
Slides
Video (48 minutes):
full HD (323M), 800×450 (145M)

Jens GeorgVideo capture
Openismus GmbH
Rygel: Open Source DLNA, ready for Customer Products?
Slides
Video (33 minutes):
full HD (215M), 800×450 (88M)

Yoshitake KobayashiVideo capture
Toshiba
Improvement of Scheduling Granularity for Deadline Scheduler
Slides
Video (31 minutes):
full HD (195M), 800×450 (82M)

Tsugikazu ShibataVideo capture
NEC
LTSI (Long-Term Stable Initiative) Status Update
Slides
Video (44 minutes):
full HD (278M), 800×450 (111M)

Thomas GleixnerVideo capture
Linutronix
UBI Fastmap
Slides
Video (45 minutes):
full HD (299M), 800×450 (121M)

Embedded Linux Conference 2012 videos

The 2012 edition of the Embedded Linux Conference took place on February 15-17th 2012 at Redwood Shores near San Francisco in California. Three engineers of Bootlin attended this conference, and we reported every day our impressions about the talks, see our blog posts for day 1, day 2 and day 3. We have now taken the time to encode all the videos we have recorded during this event, and are proud to distribute them today.

It is worth noting that for the first time, the Linux Foundation was also recording videos of the talks, the Linux Foundation videos are available from video.linux.com, and we included links to these videos below for the different talks.

We hope that those of you who couldn’t attend the conference will enjoy those videos, with many great talks on technical embedded Linux topics.

Jon CorbetVideo capture
Editor at LWN.net
The Kernel Report
Slides
Linux Foundation video
Bootlin video (53 minutes):
full HD (525M), 450×800 (154M)

Loïc PallardyVideo capture
Saving the Power Consumption of the Unused Memory
Slides
Bootlin video (46 minutes):
full HD (378M), 450×800 (125M)

Bernhard RosenkränzerVideo capture
Linaro
What Android and Embedded Linux Can Learn From Each Other
Slides
Linux Foundation video
Bootlin video (40 minutes):
full HD (370M), 450×800 (129M)

Ricardo Salveti de AraujoVideo capture
Linaro
Ubuntu on ARM: Improvements and Optimizations Done By Linaro
Slides
Linux Foundation video
Bootlin video (46 minutes):
full HD (301M), 450×800 (140M)

Zach PfefferVideo capture
Linaro
Binary Blobs Attack
Slides
Linux Foundation video
Bootlin video (50 minutes):
full HD (486M), 450×800 (157M)

Hisao MunakataVideo capture
Renesas Electronics
Close Encounters of the Upstream Resource
Slides
Linux Foundation video
Bootlin video (37 minutes):
full HD (394M), 450×800 (121M)

Daniel HurshVideo capture
IBM
Open Source Automated Test Framework
Slides
Bootlin video (45 minutes):
full HD (303M), 450×800 (132M)

Saul WoldVideo capture
Intel
The Yocto Project Overview and Update
Slides
Linux Foundation video
Bootlin video (54 minutes):
full HD (543M), 450×800 (171M)

Sean HudsonVideo capture
Mentor Graphics, Inc.
Embedded Linux Pitfalls
Slides
Bootlin video (51 minutes):
full HD (483M), 450×800 (176M)

Vincent GuittotVideo capture
Linaro
Comparing Power Saving Techniques For Multicore ARM Platforms
Slides
Linux Foundation video
Bootlin video (57 minutes):
full HD (307M), 450×800 (154M)

Tim BirdVideo capture
Sony Network Entertainment
Status of Embedded Linux
Slides
Linux Foundation video
Bootlin video (49 minutes):
full HD (492M), 450×800 (159M)

Bruce AshfieldVideo capture
Wind River
A View From the Trenches: Embedded Functionality and How It Impacts Multi-Arch Kernel Maintenance
Slides
Bootlin video (54 minutes):
full HD (741M), 450×800 (222M)

R DurgadossVideo capture
Intel
PeakCurrent Management in x86-Based Smartphones
Slides
Linux Foundation video
Bootlin video (50 minutes):
full HD (296M), 450×800 (141M)

Matt PorterVideo capture
Texas Instruments
Passing Time With SPI Framebuffer Driver
Slides

Bootlin video (54 minutes):
full HD (565M), 450×800 (172M)

WookeyVideo capture
Linaro
Multiarch and Why You Should Care: Running, Installing and Crossbuilding With Multiple Architectures
Slides
Bootlin video (42 minutes):
full HD (453M), 450×800 (143M)

Amit Daniel KachhapVideo capture
Linaro/Samsung
A New Simplified Thermal Framework For ARM Platforms
Slides
Linux Foundation video
Bootlin video (41 minutes):
full HD (226M), 450×800 (115M)

Tsugikazu ShibataVideo capture
NEC
On The Road: To Provide the Long-Term Stable Linux For The Industry
Slides
Linux Foundation video
Bootlin video (32 minutes):
full HD (304M), 450×800 (95M)

Thomas P. AbrahamVideo capture
Samsung Electronics
Experiences With Device Tree Support Development For ARM-Based SOC’s
Slides
Bootlin video (44 minutes):
full HD (509M), 450×800 (155M)

Paul E. McKenneyVideo capture
IBM
Making RCU Safe For Battery-Powered Devices
Slides
Linux Foundation video
Bootlin video (52 minutes):
full HD (506M), 450×800 (186M)

Mike AndersonVideo capture
Chief Technology Officer at The PTR Group
The Internet of Things
Slides
Linux Foundation video
Bootlin video (50 minutes):
full HD (580M), 450×800 (186M)

Thomas PetazzoniVideo capture
Bootlin
Buildroot: A Nice, Simple, and Efficient Embedded Linux Build System
Slides
Linux Foundation video
Bootlin video (56 minutes):
full HD (594M), 450×800 (182M)

Steven RostedtVideo capture
Red Hat
Automated Testing with ktest.pl (Embedded Edition)
Slides
Linux Foundation video
Bootlin video (102 minutes):
full HD (1,2G), 450×800 (354M)

David VomLehnVideo capture
Cisco
Intricacies of a MIPS Stack Backtrace Implementation
Slides
Linux Foundation video
Bootlin video (52 minutes):
full HD (345M), 450×800 (153M)

Edward HerveyVideo capture
Collabora
GStreamer 1.0: No Longer Compromise Flexibility For Performance
Slides
Linux Foundation video
Bootlin video (49 minutes):
full HD (540M), 450×800 (174M)

Tim BirdVideo capture
Sony Network Entertainment
Embedded-Appropriate Crash Handling in Linux
Slides
Linux Foundation video
Bootlin video (49 minutes):
full HD (292M), 450×800 (142M)

Arnd BergmannVideo capture
Linaro
ARM Subarchitecture Status
Slides
Linux Foundation video
Bootlin video (49 minutes):
full HD (416M), 450×800 (140M)

Mark GisiVideo capture
Wind River Systems
The Power of SPDX – Sharing Critical Licensing Information Within a Linux Device Supply Chain
Linux Foundation video
Bootlin video (49 minutes):
full HD (498M), 450×800 (164M)

Yoshitake KobayashiVideo capture
Toshiba
Ineffective and Effective Ways To Find Out Latency Bottlenecks With Ftrace
Slides
Linux Foundation video
Bootlin video (37 minutes):
full HD (251M), 450×800 (108M)

Ohad Ben-CohenVideo capture
Wizery / Texas Instruments
Using virtio to Talk With Remote Processors
Slides
Linux Foundation video
Bootlin video (54 minutes):
full HD (582M), 450×800 (182M)

Elizabeth FlanaganVideo capture
Intel
Embedded License Compliance Patterns and Antipatterns
Linux Foundation video
Bootlin video (44 minutes):
full HD (391M), 450×800 (144M)

David AndersVideo capture
Texas Instruments
Board Bringup: LCD and Display Interfaces
Slides
Linux Foundation video
Bootlin video (40 minutes):
full HD (207M), 450×800 (113M)

Rob ClarkVideo capture
Texas Instruments
DMA Buffer Sharing: An Introduction
Slides
Linux Foundation video
Bootlin video (35 minutes):
full HD (306M), 450×800 (100M)

Ken ToughVideo capture
Intrinsyc
Linux on eMMC: Optimizing For Performance
Slides
Linux Foundation video
Bootlin video (52 minutes):
full HD (468M), 450×800 (165M)

Paul LarsonVideo capture
Linaro
LAVA Project Update
Slides
Linux Foundation video
Bootlin video (52 minutes):
full HD (366M), 450×800 (159M)

Frank RowandVideo capture
Sony Network Entertainment
Real Time (BoFs)
Slides
Bootlin video (77 minutes):
full HD (924M), 450×800 (288M)

Mike TurquetteVideo capture
Texas Instruments
Common Clock Framework (BoFs)
Slides
Bootlin video (53 minutes):
full HD (333M), 450×800 (148M)

Hunyue YauVideo capture
HY Research LLC
Userland Tools and Techniques For Linux Board Bring-Up and Systems Integration
Slides
Linux Foundation video
Bootlin video (51 minutes):
full HD (407M), 450×800 (136M)

Matt WeberVideo capture
Rockwell Collins Inc.
Optimizing the Embedded Platform Using OpenCV
Slides
Linux Foundation video
Bootlin video (37 minutes):
full HD (388M), 450×800 (125M)

Greg UngererVideo capture
McAfee
M68K: Life in the Old Architecture
Slides
Linux Foundation video
Bootlin video (46 minutes):
full HD (452M), 450×800 (166M)

Gary BissonVideo capture
Adeneo Embedded
Useful USB Gadgets on Linux
Slides
Linux Foundation video
Bootlin video (43 minutes):
full HD (402M), 450×800 (129M)

Jason KridnerVideo capture
Texas Instruments
GUIs: Coming To Uncommon Goods Near You
Slides
Linux Foundation video
Bootlin video (52 minutes):
full HD (476M), 450×800 (166M)

Mike AndersonVideo capture
The PTR Group
Adapting Your Network Code For IPv6 Support
Slides
Linux Foundation video
Bootlin video (63 minutes):
full HD (485M), 450×800 (216M)

Koen KooiVideo capture
The Angstrom Distribution
Producing the Beaglebone and Supporting It
Linux Foundation video
Bootlin video (42 minutes):
full HD (398M), 450×800 (126M)

Danny BennettVideo capture
basysKom GmbH
HTML5 in a Plasma-Active World
Slides
Linux Foundation video
Bootlin video (34 minutes):
full HD (258M), 450×800 (75M)

Marcin MielczarczykVideo capture
Tieto
Getting the First Open Source GSM Stack in Linux
Slides
Linux Foundation video
Bootlin video (54 minutes):
full HD (439M), 450×800 (178M)

Pierre TardyVideo capture
Intel
PyTimechart Practical
Slides
Linux Foundation video
Bootlin video (32 minutes):
full HD (260M), 450×800 (86M)

Linus WalleijVideo capture
ST-Ericsson
Pin Control Subsystem Overview
Slides
Linux Foundation video
Bootlin video (60 minutes):
full HD (638M), 450×800 (200M)

Khem RajVideo capture
OpenEmbedded Project
OpenEmbedded – A Layered Approach
Slides
Linux Foundation video
Bootlin video (39 minutes):
full HD (227M), 450×800 (108M)

Lucas De MarchiVideo capture
ProFUSION Embedded Systems
Managing Kernel Modules With kmod
Slides
Linux Foundation video
Bootlin video (46 minutes):
full HD (443M), 450×800 (140M)

Jean PihetVideo capture
NewOldBits
A New Model for the System and Devices Latency
Slides
Bootlin video (49 minutes):
full HD (431M), 450×800 (146M)

Android Builders Summit 2012 videos

On February 13-14th 2012, the second edition of the Android Builders Summit took place in Redwood Shores, near San Francisco in California. While Bootlin was not officially in charge of video recording for this conference, we recorded the talks we attended and that we are glad to share below. The Linux Foundation has also recorded those talks (except a few of them for which they had technical issues), and we provide those additional links below. You can also follow our reports from day 1 and day 2 of this conference.

You’ll find below our videos of the main talks we recorded, and also the videos of the lightning talks that took place on the evening of the first day of the conference. Enjoy!

Main talks

Karim YaghmourVideo capture
Opersys
Leveraging Linux’s History With Android
Slides
Bootlin video (32 minutes):
full HD (386M), 450×800 (107M)

Arnd Bergmann, Tim Bird, Greg Kroah-Hartmann, Zach Pfeffer, moderated by Jonathan CorbetVideo capture
IBM/Linaro, Sony Network Entertainment, The Linux Foundation, Linaro, LWN.net
Panel: Android and the Linux Kernel Mainline: Where Are We?
Bootlin video (38 minutes):
full HD (525M), 450×800 (156M)

Marko GargentaVideo capture
Marakana
Customizing Android
Slides
Linux Foundation video
Bootlin video (50 minutes):
full HD (409M), 450×800 (131M)

Tetsuyuki KobayashiVideo capture
Kyoto Microcomputer
How ADB(Android Debug Bridge) Works
Slides
Linux Foundation video
Bootlin video (33 minutes):
full HD (365M), 450×800 (100M)

Andrew BoieVideo capture
Intel
Android OTA SW Updates
Slides
Linux Foundation video
Bootlin video (61 minutes):
full HD (698M), 450×800 (189M)

Benjamin ZoresVideo capture
Alcatel-Lucent
Android Device Porting Walkthrough
Slides
Linux Foundation video
Bootlin video (69 minutes):
full HD (534M), 450×800 (179M)

Jason Kridner, Khasim Syed MohammedVideo capture
Texas Instruments
Using Android outside of the Mobile Phone Space
Slides
Linux Foundation video
Bootlin video (34 minutes):
full HD (414M), 450×800 (120M)

Tom MossVideo capture
3LM
The Android Ecosystem
Linux Foundation video
Bootlin video (27 minutes):
full HD (267M), 450×800 (82M)

Karim YaghmourVideo capture
Opersys
Headless Android
Slides
Bootlin video (50 minutes):
full HD (462M), 450×800 (145M)

Tom FoyVideo capture
Intrinsyc
Android on eMMC: Optimizing for Performance
Slides
Bootlin video (34 minutes):
full HD (234M), 450×800 (90M)

Wolfgang MauererVideo capture
Siemens
Real-Time Android
Slides
Bootlin video (59 minutes):
full HD (418M), 450×800 (155M)

Jim HuangVideo capture
0xlab
Improve Android System Component Performance
Slides
Linux Foundation video
Bootlin video (54 minutes):
full HD (457M), 450×800 (152M)

Rodrigo ChiossiVideo capture
Samsung
AndroidXRef: Speeding up the Development of Android Internals
Slides
Linux Foundation video
Bootlin video (38 minutes):
full HD (313M), 450×800 (108M)

Mark BrownVideo capture
Wolfson Microelectronics
Towards a Standard Audio HAL for Android
Slides
Linux Foundation video
Bootlin video (47 minutes):
full HD (227M), 450×800 (123M)

Jen CostilloVideo capture
Topics in Designing An Android Sensor Subsystem: Pitfalls and Considerations
Slides
Linux Foundation video
Bootlin video (36 minutes):
full HD (238M), 450×800 (101M)

Aleksandar (Saša) GargentaVideo capture
Marakana
Android Services Black Magic
Linux Foundation video
Bootlin video (61 minutes):
full HD (410M), 450×800 (169M)

Lightning talks

Dario LaverdeVideo capture
HTC
HTC Dev
Bootlin video (3 minutes):
full HD (44M), 450×800 (13M)

Robert McQueenVideo capture
Collabora
Integrating GStreamer and PulseAudio in Android
Bootlin video (4 minutes):
full HD (49M), 450×800 (16M)

Mark GrossVideo capture
Intel
Android build times and host tweakage
Bootlin video (4 minutes):
full HD (37M), 450×800 (13M)

Tony ManssonVideo capture
Linaro
Painless debugging of native code in Android-based device (using DS-5)
Bootlin video (4 minutes):
full HD (32M), 450×800 (13M)

Paul ArssovVideo capture
ARS Technologies Inc.
How easy is it to support external hardware on Android platform
Bootlin video (4 minutes):
full HD (33M), 450×800 (13M)

Karim YaghmourVideo capture
Opersys
Cyborgstack
Bootlin video (4 minutes):
full HD (60M), 450×800 (18M)

Yahya MirzaVideo capture
Aurora Borealis Software
Towards a heterogeneous application for compute driver performance testing and analysis
Bootlin video (3 minutes):
full HD (47M), 450×800 (14M)

Joe BornVideo capture
Sonrlabs
Sonr, Serial headphone interface and hardware
Bootlin video (4 minutes):
full HD (38M), 450×800 (13M)

theora-intro

Add an introduction sequence to a Theora video

Introduction

For the needs of producing conference videos, we developed a Python script to add an introduction sequence to a given Ogg/Theora video:

Usage: theora-intro [options] input-video title-image output-video

Adds an introduction to a source Ogg/Theora video, using the given title image

Options:
  --version             show program's version number and exit
  -h, --help            show this help message and exit
  -v, --verbose         Verbose mode
  --artist=ARTIST       Overrides the ARTIST Ogg metadata
  --title=TITLE         Overrides the TITLE Ogg metadata
  --date=DATE           Overrides the DATE Ogg metadata
  --location=LOCATION   Overrides the LOCATION Ogg metadata
  --organization=ORGANIZATION
                        Overrides the ORGANIZATION Ogg metadata
  --copyright=COPYRIGHT
                        Overrides the COPYRIGHT Ogg metadata
  --license=LICENSE     Overrides the LICENSE Ogg metadata
  --contact=CONTACT     Overrides the CONTACT Ogg metadata

Why was this script created?

This script was created especially for people who need to produce multiple videos, typically from the same event. So far, the only way to add an introduction video with fade-in and fade-out was through interactive video editors, such as kdenlive, and this required to encode the video again. Another reason to create a script is that the sequence of commands to run and the amount of data to extract and generate is rather complex. Having a script rather than just a howto thus reduces the risk of errors and mistakes.

Downloads

All the releases of theora-intro can be found here.

How it works

To create an introduction sequence and concatenate it to the input video, theora-intro first needs to collect information from the input video. In particular, it reads the video width, height, the number of frames per seconds, as well as the audio bitrate and sample frequency, which need to be the same in the introduction sequence.

The introduction sequence shows the input title image (scaled), which fades in from a black picture, and eventually fades out to black again. The script actually generates a series of PNG images (using ImageMagick‘s convert utility), and converts this series into a video using ffmpeg2theora. Any input image format should work (JPG, GIF, PNG…), as ImageMagick supports most existing formats.

To be complete, the introduction sequence also needs an audio track. If it didn’t, the output video wouldn’t have any. Therefore, theora-intro generates a silent sample in WAV format, and converts it to Ogg/Vorbis.

The audio and video for the introduction sequence are then merged and concatenated. For some reasons still a bit unclear, the audio tracks of the introduction and input videos need to be resampled, but at last, there is no need to encode the video again. This makes theora-intro much faster than the time it takes to encode the video (just a few minutes even for big video files encoded in several hours).

You can find out more details by reading the code! It shoudn’t be difficult to understand it.

Ogg Metadata

It is useful to produce Ogg/Theora videos with appropriate metadata (artist, title, location, copyright…). If the input video contains such metadata, these metadata are also replicated to the generated video. Note that theora-intro has options to override these metadata when needed, or when there are no such metadata in the input video.

Requirements

This script relies on several software packages and libraries:

In Ubuntu and Debian, you can get the first four packages as follows:

sudo apt-get install vorbis-tools imagemagick ffmpeg2theora oggz-tools

Anyway, if any of the above packages is missing, theora-intro will let you know.

Use in real life

theora-intro was used to produce videos from the 2009 edition of the Embedded Linux Conference.

Known issues

At the moment, videos generated with the latest release still show a few warnings with the ogginfo command:

$ ogginfo elc2009-bird-closing.ogv 
Processing file "elc2009-bird-closing.ogv"...

New logical stream (#1, serial: 376a8b22): type theora
New logical stream (#2, serial: 06fd37a7): type vorbis
Theora headers parsed for stream 1, information follows...
Version: 3.2.1
Vendor: Xiph.Org libTheora I 20081020 3 2 1
Width: 1280
Height: 720
Total image: 1280 by 720, crop offset (0, 0)
Framerate 25/1 (25.00 fps)
Aspect ratio undefined
Colourspace: Rec. ITU-R BT.470-6 Systems B and G (PAL)
Pixel format 4:2:0
Target bitrate: 0 kbps
Nominal quality setting (0-63): 63
User comments section follows...
	TITLE=Tim Bird (Sony)- ELC Closing
	DATE=May 2009
	LOCATION=San Francisco
	ORGANIZATION=Bootlin
	COPYRIGHT=Bootlin
	LICENSE=Creative Commons BY-SA 3.0
	CONTACT=feedback@...
	ENCODER=ffmpeg2theora-0.23
Vorbis headers parsed for stream 2, information follows...
Version: 0
Vendor: Xiph.Org libVorbis I 20070622 (1.2.0)
Channels: 2
Rate: 48000

Nominal bitrate: 48.000000 kb/s
Upper bitrate not set
Lower bitrate not set
User comments section follows...
	ENCODER=oggVideoTools 0.8
Warning: Expected frame 5265, got 5266
Warning: Expected frame 5270, got 5269
Warning: Expected frame 12663, got 12664
Warning: Expected frame 12667, got 12666
Warning: Expected frame 13657, got 13658
Warning: Expected frame 13660, got 13659
Warning: Expected frame 14213, got 14214
Warning: Expected frame 14218, got 14217
Warning: Expected frame 14875, got 14876
Warning: Expected frame 14879, got 14878
Warning: Expected frame 17635, got 17636
Warning: Expected frame 17638, got 17637
Vorbis stream 2:
	Total data length: 4322809 bytes
	Playback length: 11m:57.264s
	Average bitrate: 48.214426 kb/s
Logical stream 2 ended
Theora stream 1:
	Total data length: 49233283 bytes
	Playback length: 11m:57.320s
	Average bitrate: 549.080277 kb/s
Logical stream 1 ended

These warnings don’t seem to create any issue in Ogg/Theora players. They are probably caused by an issue in the Ogg Video Tools, and we have reported this to their maintainer.

Ogg/Theora video mini howto

How to make your own Ogg/Theora videos

Here is how we created the free conference videos we are sharing with you.

Our goal is to show you that it is very easy and pretty cheap to create Ogg/Theora videos using only Free Software tools. It would be great if more people shared what they experience, in particular when they attend interesting presentations!

License

Creative commons

Copyright 2006-2008, Bootlin.
This mini-howto is released under the terms of the Creative Commons Attribution-ShareAlike 2.5 license.

Requirements

A mini-DV camcorder.

Such a device costs approximately 500 US dollars / euros. Mini-dv tapes cost about 5 US dollars / euros.

Note that other devices may be used, such as DVD or harddisk camcorders.

Harddisk camcorders are not a very good solution, because video is stored with a high compression rate (MPEG-4 format). You will not get the best results if you encode from MPEG-4 to Theora, because you will be using low bitrate input compressed with another codec.

A DVD camcorder is fine (MPEG-2 compression), because the input quality would be much better. The best is still DV input, which has very little compression, and allows to get the best of the Theora codec.

Camcorder accessories

A tripod is a must-have. Without one, your image will not be very stable (even with image stabilization), and above all, you will be exhausted after one hour.

An external microphone is nice to have, but not mandatory at all. You still
get pretty good quality audio with the built-in one. So, if you are satisfied
by the audio that you get, you do not have to buy such a microphone. However,
the best solution for top quality audio is to connect you audio input to the
room audio system (if any, and if the speaker is using a microphone).

Computer connectivity

You need a GNU/Linux computer with FireWire input (aka IEEE 1394 or iLink).
If you have a notebook with a PCMCIA adaptor, you best option is to get a
FireWire PCMCIA card which doesn’t need any special driver. This should mean
that it is compliant with the 1394 OHCI standard, which is fully supported by
Linux. Note that recent distributions (at least Fedora Core) automatically
load the right drivers when such a card is plugged in.

It may be possible to use USB connectivity too to get the video from the
camcorder. We just do not know how yet. Any resources are welcome!

Storage

The DV files are huge (roughly 15 GB per hour). As intermediate processing
steps are used in our flow, intermediate files of similar size will be
created. Hence, you will need at least 30 GB of free space to process 1 video.
Anyway, it’s much better to have 100 GB or more to store and process several
videos in a row. For notebook owners, external hard drives (typically
high-speed USB 2.0) are your friends.

An external microphone is nice to have, but not mandatory at all. You still get pretty good quality audio with the built-in one. So, if you are satisfied by the audio that you get, you do not have to buy such a microphone. However, the best solution for top quality audio is to connect you audio input to the room audio system (if any, and if the speaker is using a microphone).

Shooting the video

Before or right after filming, make sure that you ask the speaker(s) for permission to publish the video! Make sure you mention the license that you are going to use.

Video capture

Connect the camera to the computer with the FireWire cable.

If you are using a PCMCIA FireWire adaptor, all the modules should have been loaded automatically at module load time.

If you have a legacy FireWire input, you may have to do a few things by hand (logged as root):

modprobe dv1394
chmod a+rw /dev/dv1394/0

You will now use dvgrab
to get the video through the FireWire link and save it to a file. This tool is shipped by most distributions.

dvgrab --size 0 --format raw <output-file-prefix>

Note: --size 0 means that the output file is not split into many smaller ones, when they exceed a given size.

Now that you’re done, let’s assume that you created a video.dv file.

Video trimming

When you read reused tapes, it’s hard to avoid video frames from the previous recordings at the begining or at the end. Before compressing, you first have to trim out the unwanted frames.

This is pretty easy to do with the kino tool, available in all recent distros.

Make sure you export the trimmed video in DV format, to avoid losing quality.

We will soon post kino usage screenshots on this page, to get you started faster with kino.

Quick Ogg/Theora generation

That’s very easy to do. Get the latest version of the ffmpeg2theora package.

ffmpeg2theora -o video.ogv video.dv

You’re done!

You can use the -v and -a parameters to control video and audio quality. The defaults (5 and 2) should be fine for average quality requirements. With -v 7, we already get very good video quality, but the output file size is roughly double. As far as audio quality is concerned, keep in mind the source quality. Unless your audio input is high quality (audio in directly connected to the conference room sound system), there is no need for high bitrate audio compression (-a setting greater than 4).

Deinterlacing?

If the output video quality is poor, it could be because your video needs deinterlacing. In particular, this happens when you record your video in long play mode. Interlaced video is very easy to identify: you just need to find a sequence with motion (camcorder or character motion). Pause the video and interlaced lines will show up.

So, if you source video is interlaced, use the --deinterlace parameter of ffmpeg2theora:

ffmpeg2theora --deinterlace -o video.ogv video.dv

Denoising the video

Look carefully at the generated Ogg/Theora video. Do you see MPEG-like squares moving on surfaces which shouldn’t change at all (walls, sky, board, etc.)?

If this happens, this means that your original video contained noise. This is very frequent with digital camcorders, in particular in low light conditions (when you amplify a weak signal, noise gets more significant). Such noise, though it is not obvious on the source video, can get amplified in the compression process.

Hence, it’s best to remove noise before compressing, so that pixes in still surfaces do not change at all in the source video. Follow the below instructions and compare the output Ogg/Theora video size. You will find that the output file is smaller that what you got by just running ffmpeg2theora on the raw DV video.

Fortunately ffmpeg2theora now supports denoising filters: we contracted Jan Gerber, its developer, to add such filters to his tool. First make sure you have at least version 0.20 (otherwise, download the latest version).

The implementation is based on ffmpeg / mplayer‘s postproc library. Available filter settings are detailed by ffmpeg2theora --pp help, or can be found by looking for tmpnoise in mplayer’s manual page. Filter settings are not easy to choose, however. For your convenience, here are the settings we chose after multiple experiments: --pp de,tn:256:512:1024. At least with our videos, they produce good quality output without significant side effects.

Ogg/Theora video with metatags

It’s possible and useful to add metainformation (title, author, location, license) to the ogv video files.

This can be done thanks to ffmpeg2theora parameters:

ffmpeg2theora -a 3 -v 7 --pp de,tn:256:512:1024 \
--artist "Michael Opdenacker" --title "Fosdem 2006" \
--date "February 2006" --location "ULB, Brussels, Belgium" \
--organization "Bootlin (https://bootlin.com)" \
--copyright "Copyright 2006, Michael Opdenacker" \
--license "Creative Commons Attribution-ShareAlike 2.5" \
-o video.ogv video.dv

If you need to mass encode several videos in a script, it is now possible to add the metatags by hand after encoding. This can be done with the TagTheora tool.

Going further

Run ffmpeg2theora --help for details about more possibilities like live encoding and streaming.

Thanks

  • To Diego Rondini, for letting us know about TagTheora