Comment convertir un fichier mkv (avec plusieurs pistes audio) au format ogv en préservant toute la piste audio?
Est-il possible de créer un fichier ogg (audio) avec plusieurs pistes?
Sous Linux, vous disposez d'un programme de conversion de média universel appelé avconv
(alternativement ffmpeg
). Dans sa forme de base, il est contrôlé par des extensions, donc avconv -i input.mkv output.ogm
fera la conversion appropriée.
Cependant, pour conserver tous les flux, vous devez utiliser -map
option. Permettez-moi de citer le manuel:
-map [-]input_file_id[:stream_specifier][,sync_file_id[:stream_specifier]] | [linklabel] (output)
Designate one or more input streams as a source for the output file. Each input stream is identified by the input file index input_file_id and
the input stream index input_stream_id within the input file. Both indices start at 0. If specified, sync_file_id:stream_specifier sets which
input stream is used as a presentation sync reference.
The first "-map" option on the command line specifies the source for output stream 0, the second "-map" option specifies the source for output
stream 1, etc.
A "-" character before the stream identifier creates a "negative" mapping. It disables matching streams from already created mappings.
An alternative [linklabel] form will map outputs from complex filter graphs (see the -filter_complex option) to the output file. linklabel
must correspond to a defined output link label in the graph.
For example, to map ALL streams from the first input file to output
avconv -i INPUT -map 0 output
For example, if you have two audio streams in the first input file, these streams are identified by "0:0" and "0:1". You can use "-map" to
select which streams to place in an output file. For example:
avconv -i INPUT -map 0:1 out.wav
will map the input stream in INPUT identified by "0:1" to the (single) output stream in out.wav.
For example, to select the stream with index 2 from input file a.mov (specified by the identifier "0:2"), and stream with index 6 from input
b.mov (specified by the identifier "1:6"), and copy them to the output file out.mov:
avconv -i a.mov -i b.mov -c copy -map 0:2 -map 1:6 out.mov
To select all video and the third audio stream from an input file:
avconv -i INPUT -map 0:v -map 0:a:2 OUTPUT
To map all the streams except the second audio, use negative mappings
avconv -i INPUT -map 0 -map -0:a:1 OUTPUT
Note that using this option disables the default mappings for this output file.
Vous en aurez donc besoin:
avconv -i nput.mkv -map 0:v -map 0:a output.ogm
Et oui, vous pouvez stocker plusieurs pistes, et même des vidéos et du texte, dans un fichier OGG, car il s'agit d'un conteneur multimédia universel.
Ensuite, si vous voulez vraiment, vous pouvez le ré-encoder en ogg. Mais il pourrait être très utile de conserver l'encodage audio d'origine.
Utilisez d'abord ffmpeg pour identifier l'encodage du flux audio.
$ ffmpeg -i $f
Stream #0:0(und): Video: h264 (Main), yuv420p, 640x480 [SAR 1:1 DAR 4:3], 29.97 fps, 29.97 tbr, 1k tbn, 59.94 tbc
Stream #0:1(eng): Audio: opus, 48000 Hz, stereo, s16 (default)
Utilisez ensuite ffmpeg pour extraire le flux audio (dans l'encodage d'origine au format .mka).
ffmpeg -i song.mkv -acodec: copy -vn song.mka
J'ai trouvé cela utile:
http://www.hecticgeek.com/2012/12/extract-audio-using-ffmpeg-ubuntu/
Et c'est un très bon conseil:
Remarque: En cas de doute (vous ne savez pas quelle extension utiliser), vous pouvez simplement utiliser l'extension ‘.mka’ (‘output.mka’). Parce que le format de conteneur ‘MKA’ peut stocker un grand nombre de codecs audio. Si vous choisissez cela cependant, certains lecteurs pourraient ne pas être en mesure de lire la piste audio. Veuillez donc en être conscient.
Un script utile pour convertir n'importe quel mmv et mp4 en mka audio (en conservant l'encodage audio d'origine): convert_vtoa.sh
#!/bin/bash
for f in *.mkv *.mp4; do
# ffmpeg -i $f
bn=${f%%-[A-Za-z0-9]*}
echo -n bn=$bn
if [[ ! -e "$bn.mka" ]] ; then
echo ffmpeg -i "$f" -acodec: copy -vn "$bn.mka"
ffmpeg -i "$f" -acodec: copy -vn "$bn.mka"
else
echo " ##### already done. #####"
fi
done
Vous pouvez utiliser dmMediaConverter et en mode Convertir et mettre l'extension ogg ou ogv dans le fichier de sortie comme audio.ogg. En outre, décochez "Activer" sur le flux vidéo, c'est uniquement audio. Vous pouvez copier les flux s'ils sont acceptés par ce conteneur . h264/h265/vp8/vp9 n'est pas accepté par ogg.