Mam problemy z transkodowaniem niektórych filmów. Uruchomiłem najprostszą komendę ffmpeg i zajmuje to bardzo dużo czasu, a plik wyjściowy jest około 10 razy większy. Jeśli podam parametr szybkości klatek -r, działa to dobrze (mały plik, szybkie transkodowanie). Na czym polega problem i jak mogę go rozwiązać? Nie chcę ustawiać stałej liczby klatek, ponieważ myślę, że lepiej pozostawić to samo co źródło, prawda?
Być może problemem jest coś innego, ponieważ znalazłem wiele przykładów w Internecie, w których nie użyto opcji -r. Także transkodowanie do innego formatu lub z innego źródła działa dobrze bez opcji -r (próbowałem z ffmpeg 0.7.13 i 1.2.1 na Mac OS (dostarczany przez porty Mac) i 0.7.15 na serwerze Linux Debian). Filmy są dostarczane przez użytkowników mojej witryny i automatycznie konwertowane na odpowiednie dla sieci. Potrzebuję więc najbardziej ogólnego polecenia do automatycznej konwersji.
W poniższym wyjściu ffmpeg znajdziesz te dwie podejrzane wiadomości:
- Bardzo wysoka częstotliwość klatek dla multipleksera, który nie obsługuje go skutecznie. Proszę rozważyć podanie niższej liczby klatek na sekundę, innego multipleksera lub -vsync 2
- Szybkość MB (36000000)> limit poziomu (983040)
Komenda i wyjście ffmpeg (bez opcji -r):
ffmpeg -i '/tmp/standort_aquarium.mp4' -vcodec libx264 output.mp4 ffmpeg wersja 0.7.15, Copyright (c) 2000-2013 programiści FFmpeg zbudowali 22 lutego 2013 07:18:58 z konfiguracją gcc 4.4.5: --enable-libdc1394 --prefix = / usr --extra-cflags = '-Wall -g' --cc = 'ccache cc' --enable-shared --enable-libmp3lame --enable-gpl --enable-libvorbis --enable-pthreads --enable-libfaac --enable-libxvid - -enable-postproc --enable-x11grab --enable-libgsm --enable-libtheora --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libx264 --enable-libspeex --enable-nonfree - disable-stripping --enable-avfilter --enable-libdirac --disable-decoder = libdirac --enable-libfreetype --enable-libschroedinger --disable-encoder = libschroedinger --enable-version3 --enable-libopenjpeg --enable -libvpx --enable-librtmp --extra-libs = -lgcrypt --disable-altivec --disable-armv5te --disable-armv6 --disable-vis libavutil 50. 43. 0 / 50. 43. 0 libavcodec 52.123. 0 / 52,123 0 libavformat 52.111. 0 / 52,111. 0 libavdevice 52. 5. 0 / 52. 5. 0 libavfilter 1. 80. 0 / 1. 80. 0 libswscale 0. 14. 1 / 0. 14. 1 libpostproc 51. 2. 0 / 51. 2. 0 Wprowadź nr 0, mov, mp4, m4a, 3gp, 3g2, mj2, z '/tmp/standort_aquarium.mp4': Metadane: major_brand: mp42 minor_version: 0 Kompatybilne_brands: mp423gp4isom Creation_time: 19.04.2013 15:04:05 Czas trwania: 00: 00: 18,24, początek: 0,000000, szybkość transmisji: 2095 kb / s Strumień # 0.0 (und): Wideo: mpeg4, yuv420p, 640x480 [PAR 1: 1 DAR 4: 3], 2001 kb / s, 14,97 fps, 30k tbr, 30k tbn, 30k tbc Metadane: Creation_time: 19.04.2013 15:04:05 Strumień # 0,1 (und): Audio: aac, 48000 Hz, mono, s16, 96 kb / s Metadane: Creation_time: 19.04.2013 15:04:05 Plik „output.mp4” już istnieje. Zastąpić? [t / n] r [mp4 @ 0x20eed80] Bardzo wysoka częstotliwość klatek dla multipleksera, który nie obsługuje go skutecznie. Proszę rozważyć podanie niższej liczby klatek na sekundę, innego multipleksera lub -vsync 2 [bufor @ 0x20f8820] w: 640 h: 480 pixfmt: yuv420p tb: 1/1000000 sar: 1/1 sws_param: [libx264 @ 0x20efde0] Wykryto ustawienia domyślne przy użyciu profilu średniego [libx264 @ 0x20efde0] przy użyciu SAR = 1/1 [libx264 @ 0x20efde0] Szybkość MB (36000000)> limit poziomu (983040) [libx264 @ 0x20efde0] z wykorzystaniem możliwości procesora: MMX2 SSE2 Fast SSSE3 FastShuffle SSE4.2 [libx264 @ 0x20efde0] profil Wysoki, poziom 5.1 [libx264 @ 0x20efde0] 264 - rdzeń 118 - kodek AVC H.264 / MPEG-4 AVC - Copyleft 2003-2011 - http://www.videolan.org/x264.html - opcje: cabac = 1 ref = 3 deblock = 1 : 0: 0 zanalizuj = 0x3: 0x113 me = hex subme = 7 psy = 1 psy_rd = 1,00: 0,00 mixed_ref = 1 me_range = 16 chroma_me = 1 krata = 1 8x8dct = 1 cqm = 0 deadzone = 21,11 fast_pskip = 1 chroma_qp_offset = -2 wątki = 1 wątki pocięte na plastry = 0 nr = 0 dziesiętne = 1 z przeplotem = 0 bluray_compat = 0 constrained_intra = 0 ramek = 3 b_piramid = 2 b_adapt = 1 b_bias = 0 bezpośrednio = 1 wagab = 1 open_gop = 0 waga = 2 keyint = 250 keyint_min = 25 scenecut = 40 intra_refresh = 0 rc_lookahead = 40 rc = crf mbtree = 1 crf = 23,0 qcomp = 0,60 qpmin = 0 qpmax = 69 qpstep = 4 ip_ratio = 1,40 aq = 1: 1,00 Wyjście # 0, mp4, na 'output.mp4': Metadane: major_brand: mp42 minor_version: 0 Kompatybilne_brands: mp423gp4isom Creation_time: 19.04.2013 15:04:05 enkoder: Lavf52.111.0 Strumień # 0.0 (und): Wideo: libx264, yuv420p, 640x480 [PAR 1: 1 DAR 4: 3], q = 2-31, 200 kb / s, 30 kb / s, 30 kb Metadane: Creation_time: 19.04.2013 15:04:05 Strumień # 0.1 (und): Audio: libfaac, 48000 Hz, mono, s16, 64 kb / s Metadane: Creation_time: 19.04.2013 15:04:05 Mapowanie strumienia: Strumień # 0,0 -> 0,0 Strumień # 0,1 -> # 0,1 Naciśnij [q], aby zatrzymać, [?], Aby uzyskać pomoc ramka = 542630 fps = 132 q = 33,0 Lsize = 77226kB czas = 00: 00: 18,08 bitrate = 34976.2kbits / s dup = 542358 drop = 0 wideo: 68604 kB audio: 143 kB globalnych nagłówków: obciążenie kumulacyjne 0 kB 12,333275% ramka I: 2174 Śr. QP: 18,72 rozmiar: 25040 [libx264 @ 0x20efde0] ramka P: 136846 Śr. QP: 25,27 rozmiar: 56 [libx264 @ 0x20efde0] ramka B: 403610 Śr. QP: 32,99 rozmiar: 20 [libx264 @ 0x20efde0] kolejne ramki B: 0,8% 0,0% 0,1% 99,1% [libx264 @ 0x20efde0] MB I I16..4: 5,5% 83,3% 11,1% [libx264 @ 0x20efde0] MB P I16..4: 0,0% 0,0% 0,0% P16..4: 0,5% 0,0% 0,0% 0,0% 0,0% pominięcie: 99,4% [libx264 @ 0x20efde0] MB B I16..4: 0,0% 0,0% 0,0% B16..8: 0,0% 0,0% 0,0% bezpośredni: 0,0% pominąć: 100,0% L0: 21,2% L1: 78,8% BI: 0,0% [libx264 @ 0x20efde0] Transformacja 8x8 intra: 83,1% inter: 85,2% [libx264 @ 0x20efde0] zakodowane y, uvDC, uvAC intra: 91,2% 95,8% 80,7% inter: 0,0% 0,1% 0,0% [libx264 @ 0x20efde0] i16 v, h, dc, p: 13% 40% 12% 35% [libx264 @ 0x20efde0] i8 v, h, dc, ddl, ddr, vr, hd, vl, hu: 19% 34% 15% 4% 4% 5% 6% 7% 8% [libx264 @ 0x20efde0] i4 v, h, dc, ddl, ddr, vr, hd, vl, hu: 20% 38% 6% 4% 6% 6% 8% 6% 6% [libx264 @ 0x20efde0] i8c dc, h, v, p: 39% 32% 19% 10% [libx264 @ 0x20efde0] Ważone ramki typu P: Y: 0,0% UV: 0,0% [libx264 @ 0x20efde0] ref. P L0: 91,5% 5,2% 2,8% 0,4% 0,0% [libx264 @ 0x20efde0] ref B L0: 55,7% 43,5% 0,8% [libx264 @ 0x20efde0] ref B L1: 97,9% 2,1% [libx264 @ 0x20efde0] kb / s: 31071.04
Komenda i wyjście ffmpeg z opcją -r 24:
ffmpeg -i '/tmp/standort_aquarium.mp4' -r 30000/1001 -vcodec libx264 output.mp4 ffmpeg wersja 0.7.15, Copyright (c) 2000-2013 deweloperzy FFmpeg zbudowany 22 lutego 2013 07:18:58 z gcc 4.4.5 konfiguracja: --enable-libdc1394 --prefix = / usr --extra-cflags = '- Wall -g' --cc = 'ccache cc' --enable-shared --enable-libmp3lame --enable-gpl - enable-libvorbis --enable-pthreads --enable-libfaac --enable-libxvid --enable-postproc --enable-x11grab --enable-libgsm --enable-libtheora --enable-libopencore-amrnb --enable-libopencore -amrwb --enable-libx264 --enable-libspeex --enable-nonfree - disis-stripping --enable-avfilter --enable-libdirac --disable-decoder = libdirac --enable-libfreetype --enable-libschroedinger - -disable-encoder = libschroedinger --enable-version3 --enable-libopenjpeg --enable-libvpx --enable-librtmp --extra-libs = -lgcrypt --disable-altivec --disable-armv5te --disable-armv6 - -disable-vis libavutil 50. 43. 0 / 50. 43. 0 libavcodec 52.123. 0 / 52,123 0 libavformat 52.111. 0 / 52,111. 0 libavdevice 52. 5. 0 / 52. 5. 0 libavfilter 1. 80. 0 / 1. 80. 0 libswscale 0. 14. 1 / 0. 14. 1 libpostproc 51. 2. 0 / 51. 2. 0 Wprowadź nr 0, mov, mp4, m4a, 3gp, 3g2, mj2, z '/tmp/standort_aquarium.mp4': Metadane: major_brand: mp42 minor_version: 0 Kompatybilne_brands: mp423gp4isom Creation_time: 19.04.2013 15:04:05 Czas trwania: 00: 00: 18,24, początek: 0,000000, szybkość transmisji: 2095 kb / s Strumień # 0.0 (und): Wideo: mpeg4, yuv420p, 640x480 [PAR 1: 1 DAR 4: 3], 2001 kb / s, 14,97 fps, 30k tbr, 30k tbn, 30k tbc Metadane: Creation_time: 19.04.2013 15:04:05 Strumień # 0,1 (und): Audio: aac, 48000 Hz, mono, s16, 96 kb / s Metadane: Creation_time: 19.04.2013 15:04:05 Plik „output.mp4” już istnieje. Zastąpić? [t / n] r [bufor @ 0x132e820] w: 640 h: 480 pixfmt: yuv420p tb: 1/1000000 sar: 1/1 sws_param: [libx264 @ 0x1325de0] Wykryto ustawienia domyślne przy użyciu profilu średniego [libx264 @ 0x1325de0] przy użyciu SAR = 1/1 [libx264 @ 0x1325de0] z wykorzystaniem możliwości procesora: MMX2 SSE2 Fast SSSE3 FastShuffle SSE4.2 [libx264 @ 0x1325de0] profil Wysoki, poziom 3.0 [libx264 @ 0x1325de0] 264 - rdzeń 118 - kodek AVC H.264 / MPEG-4 AVC - Copyleft 2003-2011 - http://www.videolan.org/x264.html - opcje: cabac = 1 ref = 3 deblock = 1 : 0: 0 zanalizuj = 0x3: 0x113 me = hex subme = 7 psy = 1 psy_rd = 1,00: 0,00 mixed_ref = 1 me_range = 16 chroma_me = 1 krata = 1 8x8dct = 1 cqm = 0 deadzone = 21,11 fast_pskip = 1 chroma_qp_offset = -2 wątki = 1 wątki pocięte na plastry = 0 nr = 0 dziesiętne = 1 z przeplotem = 0 bluray_compat = 0 constrained_intra = 0 ramek = 3 b_piramid = 2 b_adapt = 1 b_bias = 0 bezpośrednio = 1 wagab = 1 open_gop = 0 waga = 2 keyint = 250 keyint_min = 25 scenecut = 40 intra_refresh = 0 rc_lookahead = 40 rc = crf mbtree = 1 crf = 23,0 qcomp = 0,60 qpmin = 0 qpmax = 69 qpstep = 4 ip_ratio = 1,40 aq = 1: 1,00 Wyjście # 0, mp4, na 'output.mp4': Metadane: major_brand: mp42 minor_version: 0 Kompatybilne_brands: mp423gp4isom Creation_time: 19.04.2013 15:04:05 enkoder: Lavf52.111.0 Strumień # 0.0 (und): Wideo: libx264, yuv420p, 640x480 [PAR 1: 1 DAR 4: 3], q = 2-31, 200 kb / s, 30 kb / s, 29,97 tbc Metadane: Creation_time: 19.04.2013 15:04:05 Strumień # 0.1 (und): Audio: libfaac, 48000 Hz, mono, s16, 64 kb / s Metadane: Creation_time: 19.04.2013 15:04:05 Mapowanie strumienia: Strumień # 0,0 -> 0,0 Strumień # 0,1 -> # 0,1 Naciśnij [q], aby zatrzymać, [?], Aby uzyskać pomoc ramka = 542 fps = 36 q = 29,0 Lsize = 2059kB czas = 00: 00: 18,01 bitrate = 936,3 kb / s dup = 270 drop = 0 wideo: 1904kB audio: 143kB nagłówki globalne: obciążenie nadmiarowe 0kB 0,609224% ramka I: 3 Śr. QP: 22,39 rozmiar: 14773 [libx264 @ 0x1325de0] ramka P: 514 Śr. QP: 23,98 rozmiar: 3675 [libx264 @ 0x1325de0] ramka B: 25 Śr. QP: 27,44 rozmiar: 643 [libx264 @ 0x1325de0] kolejne ramki B: 93,7% 0,0% 1,1% 5,2% [libx264 @ 0x1325de0] mb I I16..4: 16,4% 78,3% 5,3% [libx264 @ 0x1325de0] MB P I16..4: 1,6% 6,3% 0,3% P16..4: 30,8% 8,6% 3,1% 0,0% 0,0% pominięcie: 49,4% [libx264 @ 0x1325de0] MB B I16..4: 0,4% 0,7% 0,0% B16..8: 13,2% 1,6% 0,2% bezpośrednie: 0,3% pominięcie: 83,6% L0: 50,0% L1: 47,1% BI: 2,9% [libx264 @ 0x1325de0] Transformacja 8x8 intra: 77,1% inter: 83,1% [libx264 @ 0x1325de0] zakodowane y, uvDC, uvAC intra: 62,0% 76,4% 24,4% inter: 17,9% 26,3% 2,3% [libx264 @ 0x1325de0] i16 v, h, dc, p: 14% 60% 13% 13% [libx264 @ 0x1325de0] i8 v, h, dc, ddl, ddr, vr, hd, vl, hu: 15% 35% 33% 2% 3% 3% 3% 3% 4% [libx264 @ 0x1325de0] i4 v, h, dc, ddl, ddr, vr, hd, vl, hu: 15% 40% 12% 4% 7% 7% 7% 5% 4% [libx264 @ 0x1325de0] i8c dc, h, v, p: 46% 34% 16% 4% [libx264 @ 0x1325de0] Ważone ramki typu P: Y: 8,0% UV: 4,5% [libx264 @ 0x1325de0] ref. P L0: 65,6% 16,7% 8,8% 7,9% 0,9% [libx264 @ 0x1325de0] ref B L0: 85,9% 13,3% 0,8% [libx264 @ 0x1325de0] ref B L1: 88,7% 11,3% [libx264 @ 0x1325de0] kb / s: 862,28
Źródło wideo jest tymczasowo dostępne pod adresem : https://www.dropbox.com/s/4xg147z77u40g87/standort_aquarium.mp4
-vsync 2
stosuje. To właśnie spowodowało ogromne duplikowanie klatek, które widziałeś (a nie oryginalny błąd, który doprowadził do tego obejścia). -vsync 2
Wydaje mi się jednak, że mxing do mp4 działa z obecnym git ffmpeg.