avconv podający błąd w strumieniu audio

4

Próbując przekonwertować plik mkv do avi:

 avconv -i 1.mkv ./converted/1.avi

Uzyskanie tego wyniku:

avconv version 0.8.1-4:0.8.1-0ubuntu1, Copyright (c) 2000-2011 the Libav developers
  built on Mar 22 2012 05:29:10 with gcc 4.6.3
[matroska,webm @ 0x8ba3aa0] Estimating duration from bitrate, this may be inaccurate
Input #0, matroska,webm, from '1.mkv':
  Metadata:
    TITLE           : 
    ARTIST          : 
    COMPOSER        : 
    SYNOPSIS        : 
    DATE_RELEASED   : 
    GENRE           : 
  Duration: 00:07:48.54, start: 0.000000, bitrate: N/A
    Stream #0.0(eng): Video: h264 (Main), yuv420p, 1910x800 [PAR 1:1 DAR 191:80], 24 fps, 24 tbr, 1k tbn, 180k tbc (default)
    Stream #0.1: Audio: aac, 44100 Hz, stereo, s16 (default)
[buffer @ 0x8dcd160] w:1910 h:800 pixfmt:yuv420p
Incompatible sample format 's16' for codec 'ac3', auto-selecting format 'flt'
[ac3 @ 0x8f24540] invalid bit rate
Output #0, avi, to './converted/1.avi':
  Metadata:
    TITLE           : 
    ARTIST          : 
    COMPOSER        : 
    SYNOPSIS        : 
    DATE_RELEASED   : 
    GENRE           : 
    Stream #0.0(eng): Video: mpeg4, yuv420p, 1910x800 [PAR 1:1 DAR 191:80], q=2-31, 200 kb/s, 90k tbn, 24 tbc (default)
    Stream #0.1: Audio: ac3, 44100 Hz, stereo, flt, 200 kb/s (default)
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

Google nic nie znalazł.

sennett
źródło
Przepraszam, musiałem to źle zrozumieć.
slhck

Odpowiedzi:

3

Przede wszystkim spróbuj użyć innego enkodera niż ac3. Z twoim rozkazem w zasadzie sam avconvdecydujesz o wszystkim. Chociaż może to być błąd (zgłoś raport, jeśli działa w FFmpeg), prawdopodobnie możesz go obejść, określając koder - sugeruję MP3, jeśli masz link do libav:

avconv -i 1.mkv -c:a libmp3lame ./converted/1.avi

Oto wskazanie błędu:

Niezgodny format próbki „s16” dla kodeka „ac3”

Może spróbuj wymusić AC3, a może nawet określić parametry, takie jak -b:a:

avconv -i 1.mkv -c:a ac3 ./converted/1.avi

Możesz także użyć odpowiednich opcji dla strumienia wideo, zamiast konwertować (prawdopodobnie wysokiej jakości) strumień h.264 na zwykły MPEG-4. Jestem prawie pewien, że wynik konwersji będzie wyglądał źle, jeśli tak nie jest.

slhck
źródło
Dzięki za odpowiedź. Mam z tym współpracę libmp3lame. Dziękujemy za informacje dotyczące opcji wideo. Gdzie mogę o tym przeczytać więcej? Dokumentacja nie daje wiele przegląd.
sennett
Dużo o tym pisałem, również na blogu Super User: FFmpeg: Najlepsze narzędzie do manipulacji wideo i dźwiękiem . Sprawdź linki poniżej tego wpisu na blogu, aby znaleźć inne odpowiedzi, które napisałem, które mówią o używaniu x264 i ustawianiu dobrego poziomu jakości . Zrób sobie przysługę i użyj zamiast tego x264 ( -c:v libx264) - jakość będzie znacznie lepsza niż przy użyciu podstawowego kodera MPEG-4. Mam nadzieję, że to pomoże - daj mi znać, jeśli potrzebujesz dodatkowych informacji! :)
slhck
Chociaż jedno ostrzeżenie: x.264 w kontenerach AVI może nie zawsze działać tak dobrze. Spróbuj zmienić na pojemniki MP4 lub pozostań przy MKV. Jeśli potrzebujesz kontenerów AVI, możesz trzymać się MPEG-4, ale następnie określić poziom jakości:, avconv -i 1.mkv -c:v mpeg-4 -qscale 3 …gdzie qscalemoże wynosić od 1 (dobry) do 31 (zły), przy zdrowych wartościach 2-5.
slhck
Boże, przyjacielu. Dziękuję bardzo za wszystkie informacje. Przeglądam teraz wpis na blogu. Najbardziej pouczające.
sennett