How can I convert my mp4 files to avi using avconv?
I need to convert some mp4 files to another format (I chose avi: there may be a better one, suggestions welcome). I tried using ffmpeg but got the deprecated message so I am using avconv, but again there may be a better tool.
Here's what I'm using: avconv -i e2.mp4 -vtag libxvid -b:v 1500k e2.avi
This gives me the following output:
avconv version 0.8.9-6:0.8.9-0ubuntu0.13.10.1, Copyright (c) 2000-2013 the Libav developers
built on Nov 9 2013 19:09:46 with gcc 4.8.1
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1c677a0] multiple edit list entries, a/v desync might occur, patch welcome
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'e2.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf53.21.1
media_type : 10
copyright : � 2014 British Broadcasting Corporation, all rights reserved
title : Episode 2
artist : BBC Four
album_artist : BBC TV
album : The Bridge: Series 2
composer : BBC iPlayer
genre : Drama
comment : Online, four individuals in masks use signs to claim responsibility for the plague.
date : 2014-01-04T22:00:00Z
track : 2
disc : 2
description : Online, four individuals in masks use signs to claim responsibility for the plague.
show : The Bridge: Series 2
episode_id : s02e02
season_number : 2
episode_sort : 2
network : BBC Four
Duration: 00:57:38.16, start: 0.000000, bitrate: 2399 kb/s
Stream #0.0(und): Video: h264 (High), yuv420p, 1280x720 [PAR 1:1 DAR 16:9], 2298 kb/s, 25 fps, 25 tbr, 1k tbn, 50 tbc
Stream #0.1(und): Audio: aac, 48000 Hz, stereo, s16, 93 kb/s
[buffer @ 0x1c69260] w:1280 h:720 pixfmt:yuv420p
Incompatible sample format 's16' for codec 'ac3', auto-selecting format 'flt'
[ac3 @ 0x1c2a160] invalid bit rate
Output #0, avi, to 'e2.avi':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf53.21.1
media_type : 10
copyright : � 2014 British Broadcasting Corporation, all rights reserved
title : Episode 2
artist : BBC Four
album_artist : BBC TV
album : The Bridge: Series 2
composer : BBC iPlayer
genre : Drama
comment : Online, four individuals in masks use signs to claim responsibility for the plague.
date : 2014-01-04T22:00:00Z
track : 2
disc : 2
description : Online, four individuals in masks use signs to claim responsibility for the plague.
show : The Bridge: Series 2
episode_id : s02e02
season_number : 2
episode_sort : 2
network : BBC Four
Stream #0.0(und): Video: mpeg4, yuv420p, 1280x720 [PAR 1:1 DAR 16:9], q=2-31, 1500 kb/s, 90k tbn, 25 tbc
Stream #0.1(und): Audio: ac3, 48000 Hz, stereo, flt, 200 kb/s
Stream mapping:
Stream #0:0 -> #0:0 (h264 -> mpeg4)
Stream #0:1 -> #0:1 (aac -> ac3)
Error while opening encoder for output stream #0:1 - maybe incorrect parameters such as bit_rate, rate, width or height
I also get a e2.avi file which is empty. I have not used avconv before - what would be the correct way to do this? I can post more details if needed.
Thanks in advance!
Solution 1:
Since AVI is only a container to hold your data the fastest way to convert your video is to just copy the already encoded audio and video stream. This is not done by default. To force copy streams we may use the option -c
as follows:
avconv -i infile.mp4 -c:a copy -c:v copy outfile.avi
Of course only a video encoding supported by the AVI container can be copied this way.
To re-encode the output video we can replace copy
by any of supported codecs as listed with an E
from
avconv -codecs