// Load attributes from the external file
include::{partialsdir}/attributes.adoc[]

// This assembly is included in the following assemblies:
//
// <List assemblies here, each on a new line>

// This assembly can be included from other assemblies using the following
// include statement:
// include::assembly_installing-plugins-for-playing-movies-and-music.adoc[leveloffset=+1]

// The following line is necessary to allow assemblies be included in other
// assemblies. It restores the `context` variable to its previous state.

// The `context` attribute enables module reuse. Every module's ID
// includes {context}, which ensures that the module has a unique ID even if
// it is reused multiple times in a guide.

ifdef::context[:parent-context: {context}]
:context: assembly_installing-plugins-for-playing-movies-and-music

// The file name and the ID are based on the assembly title.
// For example:
// * file name: assembly_my-assembly-a.adoc
// * ID: [id='assembly_my-assembly-a_{context}']
// * Title: = My assembly A
//
// The ID is used as an anchor for linking to the module.
// Avoid changing it after the module has been published
// to ensure existing links are not broken.
//
// In order for  the assembly to be reusable in other assemblies in a guide,
// include {context} in the ID: [id='a-collection-of-modules_{context}'].
//
// If the assembly covers a task, start the title with a verb in the gerund
// form, such as Creating or Configuring.
[id='assembly_installing-plugins-for-playing-movies-and-music_{context}']
= Installing plugins for playing movies and music

include::{partialsdir}/unreviewed-message.adoc[]

As a Fedora user and system administrator, you can use these steps to install additional multimedia plugins that enable you to play various video and audio types.

WARNING: If you live in a country where software patents apply, such as in the United States or in Japan, you need to obtain multimedia codecs from a source that legally distributes patented software in your country. For example, see the Fluendo Codec Pack: link:https://fluendo.com/en/products/enterprise/fluendo-codec-pack/[].

The following procedures only apply to users in countries that do not recognize software patents. The steps are:

. Enable RPM Fusion. You can choose one of the following ways to accomplish it:
+
** xref:proc_enabling-the-rpmfusion-repositories-using-graphical-applications_assembly_installing-plugins-for-playing-movies-and-music[]
** xref:proc_enabling-the-rpmfusion-repositories-using-command-line-utilities_assembly_installing-plugins-for-playing-movies-and-music[]
. Install new packages: xref:proc_installing-multimedia-plug-ins-with-dnf_assembly_installing-plugins-for-playing-movies-and-music[]

// [id='prerequisites-{context}']
// == Prerequisites
//
// * Delete the section title and bullets if the assembly has no prerequisites.

// The following include statements pull in the module files that comprise
// the assembly. Include any combination of concept, procedure, or reference
// modules required to cover the user story. You can also include other
// assemblies.

include::{partialsdir}/proc_enabling-the-rpmfusion-repositories-using-graphical-applications.adoc[leveloffset=+1]

include::{partialsdir}/proc_enabling-the-rpmfusion-repositories-using-command-line-utilities.adoc[leveloffset=+1]

include::{partialsdir}/proc_installing-multimedia-plug-ins-with-dnf.adoc[leveloffset=+1]

include::{partialsdir}/concept_third-party-repositories.adoc[leveloffset=+1]

include::{partialsdir}/con_the-purpose-of-rpm-fusion.adoc[leveloffset=+1]

// [leveloffset=+1] ensures that when a module starts with a level-1 heading
// (= Heading), the heading will be interpreted as a level-2 heading
// (== Heading) in the assembly.

[id='related-information-{context}']
== Related information

* There are also media players that include all relevant codecs by themselves. Consider using one of the following for offline video viewing:
** VLC, available from the `vlc` package in RPM Fusion Free
** MPV, available from the `mpv` package in RPM Fusion Free


// The following line is necessary to allow assemblies be included in other
// assemblies. It restores the `context` variable to its previous state.
ifdef::parent-context[:context: {parent-context}]
ifndef::parent-context[:!context:]
