web-dev-qa-db-fra.com

Comment faire pivoter une vidéo h264?

J'ai essayé ce qui suit:

$ avconv -i in.mov -codec:video copy -codec:audio copy -filter transpose=clock out.mov
avconv version 0.8.6-6:0.8.6-1ubuntu2, Copyright (c) 2000-2013 the Libav developers
  built on Mar 30 2013 22:23:21 with gcc 4.7.2
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'in.mov':
  Metadata:
    major_brand     : qt  
    minor_version   : 537331968
    compatible_brands: qt  CAEP
    creation_time   : 2013-03-03 15:47:47
  Duration: 00:00:18.97, start: 0.000000, bitrate: 45882 kb/s
    Stream #0.0(eng): Video: h264 (Constrained Baseline), yuvj420p, 1920x1080, 44343 kb/s, 23.98 fps, 23.98 tbr, 24k tbn, 48k tbc
    Metadata:
      creation_time   : 2013-03-03 15:47:47
    Stream #0.1(eng): Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s
    Metadata:
      creation_time   : 2013-03-03 15:47:47
Output #0, mov, to 'out.mov':
  Metadata:
    major_brand     : qt  
    minor_version   : 537331968
    compatible_brands: qt  CAEP
    creation_time   : 2013-03-03 15:47:47
    encoder         : Lavf53.21.1
    Stream #0.0(eng): Video: avc1 / 0x31637661, yuvj420p, 1920x1080, q=2-31, 44343 kb/s, 24k tbn, 24k tbc
    Metadata:
      creation_time   : 2013-03-03 15:47:47
    Stream #0.1(eng): Audio: pcm_s16le, 48000 Hz, stereo, 1536 kb/s
    Metadata:
      creation_time   : 2013-03-03 15:47:47
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (copy)
Press ctrl-c to stop encoding
frame=  455 fps=379 q=-1.0 Lsize=  106291kB time=18.94 bitrate=45983.9kbits/s    
video:102724kB audio:3558kB global headers:0kB muxing overhead 0.008270%

Le out.mov résultant joue très bien, mais la vidéo n'est pas tournée. J'ai essayé de nombreux filtres différents:

transpose=1
rotate=1
rotate=clock

Tous avec le même résultat.

1
l0b0

Il s'est avéré nécessaire d'installer le x264 package et utilisez -codec:video libx264 plutôt que copy pour que cela fonctionne. Étrangement, rien dans la sortie n'indiquait des codecs manquants ou des options conflictuelles. Les commandes de travail:

$ Sudo apt-get install x264
$ avconv -i in.mov -codec:video libx264 -codec:audio copy -vf transpose=clock out.mov
1
l0b0

Pour info, la réponse acceptée en utilisant libx264 n'est pas entièrement complète, du moins le 12.04.4. Vous devez installer un autre paquet (et toutes ses dépendances) pour que la bibliothèque d'encodeurs libx264 soit connectée à avconv.

Voir ce post sur les forums ubunt

$ Sudo apt-get install libavcodec-extra-53

Ensuite, vous pouvez vérifier qu'il est installé:

$ avconv -codecs|grep 264 avconv version 0.8.10-4:0.8.10-0ubuntu0.12.04.1, Copyright (c) 2000-2013 the Libav developers built on Feb 6 2014 20:56:59 with gcc 4.6.3 D V D h264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 D V D h264_vdpau H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (VDPAU acceleration) EV libx264 libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10

3
core24