Jak mogę przekonwertować moje pliki mp4 na avi przy użyciu avconv?

8

Muszę przekonwertować niektóre pliki mp4 na inny format (wybrałem avi: może być lepszy, mile widziane sugestie). Próbowałem użyć ffmpeg, ale otrzymałem przestarzałą wiadomość, więc używam avconv, ale znowu może być lepsze narzędzie.

Oto, czego używam: avconv -i e2.mp4 -vtag libxvid -b:v 1500k e2.avi

To daje mi następujące dane wyjściowe:

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

Dostaję również plik e2.avi, który jest pusty. Nie korzystałem wcześniej z avconv - jaki byłby to właściwy sposób? W razie potrzeby mogę opublikować więcej szczegółów.

Z góry dziękuję!

mikrobug
źródło
Mówi ci: „Niezgodny format próbny„ s16 ”dla kodeka„ ac3 ”, automatyczny wybór formatu„ flt ”” i „Błąd podczas otwierania enkodera dla strumienia wyjściowego # 0: 1 - być może niepoprawne parametry, takie jak bit_rate, szybkość, szerokość lub wysokość". co oznacza, że ​​zorientował się plik wejściowy, ale nie mógł skonfigurować pliku wyjściowego. Czytać man avconv.
waltinator

Odpowiedzi:

8

Ponieważ AVI jest tylko kontenerem do przechowywania danych, najszybszym sposobem konwersji wideo jest po prostu skopiowanie już zakodowanego strumienia audio i wideo. Nie jest to domyślnie wykonywane. Aby wymusić kopiowanie strumieni, możemy użyć tej opcji -cw następujący sposób:

avconv -i infile.mp4 -c:a copy -c:v copy outfile.avi

Oczywiście w ten sposób można skopiować tylko kodowanie wideo obsługiwane przez kontener AVI.

Aby ponownie zakodować wyjściowy film, możemy go zastąpić copydowolnym obsługiwanym kodekiem wymienionym na liście Eod z

avconv -codecs
Takkat
źródło