Outils pour utilisateurs

Outils du site


convertir_une_video_3gp

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
convertir_une_video_3gp [2025/12/25 01:57] – [Lecture] Flazconvertir_une_video_3gp [2025/12/25 14:10] (Version actuelle) – [Convertir une vidéo 3gp] Flaz
Ligne 1: Ligne 1:
-====== Convertir une vidéo 3gp ====== +====== Convertir une vidéo 3gp/amr en mpeg4/aac ======
- +
-<note important>J'ai réussi à convertir les images mais pas le son.</note> +
 ===== Cas d'utilisation ===== ===== Cas d'utilisation =====
-J'ai reçu une vidéo via MMS au format 3gp. Je souhaite la convertir dans un autre format.+J'ai reçu une vidéo via MMS au format //3gp//. Je souhaite la visionner sur mon ordi.
  
 La vidéo contient un flux audio au format //amr//. La vidéo contient un flux audio au format //amr//.
Ligne 26: Ligne 23:
   Stream #0:1[0x2](und): Video: h263 (s263 / 0x33363273), yuv420p, 176x144 [SAR 12:11 DAR 4:3], 59 kb/s, 10 fps, 10 tbr, 600 tbn (default)   Stream #0:1[0x2](und): Video: h263 (s263 / 0x33363273), yuv420p, 176x144 [SAR 12:11 DAR 4:3], 59 kb/s, 10 fps, 10 tbr, 600 tbn (default)
 </code> </code>
 +
 +===== Lecture =====
 +Dans mon cas, la lecture sur ordi du fichier 3gp restitue bien la vidéo mais **le son est massacré**, le rendant inaudible.
 +
 +Je décide convertir le fichier vers un format que mon ordi lit correctement.
  
 ===== Conversion ===== ===== Conversion =====
 +Je n'ai pas trouvé le moyen de tout faire en une seule commande :-\ Je procède en 3 étapes :
 +  - extraction de la piste vidéo seule
 +  - extraction de la piste audio seule
 +  - assemblage des deux pistes
 ==== Prérequis ==== ==== Prérequis ====
-//ffmpeg// doit être installé et doté d'un codec //amr//. Sur Debian 12, le codec est disponible moyennat l'installation du paquetage //libavcodec-extra//((Pour des raisons de licence, //libavcodec// ne contient pas de codec amr.)). +//ffmpeg// doit être installé et doté d'un codec //amr//. Sur Debian 12, les paquetages de codecs suivants sont installés :  
-==== Lecture ==== +  * //libavcodec-extra//((Pour des raisons de licence, //libavcodec// ne contient pas de codec amr.)), 
-Dans mon cas, la lecture sur ordi du fichier 3gp restitue bien la vidéo mais **le son est massacré**, le rendant inaudible.+  //libopencore-amrnb0//, 
 +  * //libopencore-amrwb0//. 
 ==== Conversion ==== ==== Conversion ====
 +
 +Extraction vidéo :<code>ffmpeg -i mon-fichier.3gp -an -vcodec copy mon-fichier-video.3gp</code>
 +
 +Extraction audio :<code>ffmpeg -i mon-fichier.3gp -map 0:a -acodec copy mon-fichier-audio.amr</code>
 +
 +Combinaison audio et vidéo :<code>ffmpeg -i mon-fichier-video.3gp -i mon-fichier-audio.amr mon-fichier.mp4</code>
 +Rotation sans réencodage (si besoin) :<code>ffmpeg -i mon-fichier.mp4 -map_metadata 0 -metadata:s:v rotate="90" -codec copy mon-fichier-mod.mp4</code>
 +
 +=== Script ===
 +Un script de conversion (sans rotation) permet de simplifier l'opération.
 +<code> 3gp2mp4.sh mon-fichier.3gp</code>
 +<file bash 3gp2mp4.sh>
 +#!/bin/bash
 +# Convertit un fichier 3gp/amr en mpeg4/aac
 +# Fonctionne en chemin absolu ou relatif et depuis un script
 +# Utilisation : 3gp2mp4 (<chemin-vers-mon-fichier.3gp> | <mon-fichier.3gp>)
 +
 +repertoire="$(dirname "$1")"
 +radical="$(basename "$1")"
 +root=${radical%.*}
 +ext=${radical#"$root"}
 +ffmpeg -i $1 -an -vcodec copy "$repertoire/${root}-video${ext}"
 +ffmpeg -i $1 -map 0:a -acodec copy "$repertoire/${root}-video.amr"
 +ffmpeg -i "$repertoire/${root}-video${ext}" -i "$repertoire/${root}-video.amr" "$repertoire/${root}.mp4"
 +rm "$repertoire/${root}-video${ext}" "$repertoire/${root}-video.amr"
 +</file>
 +===== Résultat =====
 +<code>
 +  Metadata:
 +    major_brand     : isom
 +    minor_version   : 512
 +    compatible_brands: isomiso2avc1mp41
 +    encoder         : Lavf59.27.100
 +  Duration: 00:00:42.10, start: 0.000000, bitrate: 80 kb/s
 +  Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 176x144 [SAR 12:11 DAR 4:3], 40 kb/s, 10 fps, 10 tbr, 10240 tbn (default)
 +    Metadata:
 +      handler_name    : Core Media Video
 +      vendor_id       : [0][0][0][0]
 +      encoder         : Lavc59.37.100 libx264
 +    Side data:
 +      displaymatrix: rotation of 90.00 degrees
 +  Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 8000 Hz, mono, fltp, 38 kb/s (default)
 +    Metadata:
 +      handler_name    : SoundHandler
 +      vendor_id       : [0][0][0][0]
 +
 +</code>
 +===== Ce qui n'a pas fonctionné =====
 La commande typique pour convertir le fichier en //mpeg4// / //mp3// encapsulé dans un conteneur //avi// est la suivante : La commande typique pour convertir le fichier en //mpeg4// / //mp3// encapsulé dans un conteneur //avi// est la suivante :
 <code>ffmpeg -i mon-fichier.3gp -vcodec mpeg4 -acodec mp3 movie.avi</code> <code>ffmpeg -i mon-fichier.3gp -vcodec mpeg4 -acodec mp3 movie.avi</code>
 +La vidéo convertie est exploitable mais le son est toujours inutilisable (il produit d'autres bruits qu'en la lecture au format natif).
 +
 +Diverses tentatives d'extraction-conversion du son seul donnent également des résultats inexploitables.
 +<code>
 +ffmpeg -i mon-fichier.3gp -ar 22050 mon-fichier.mp3
 +ffmpeg -i mon-fichier.3gp -ar 8000 mon-fichier.mp3
 +ffmpeg -i mon-fichier.3gp -ar 44100 mon-fichier.wav
 +</code>
 +
convertir_une_video_3gp.1766627822.txt.gz · Dernière modification : de Flaz