Avconv увеличивает размер файла

2078
Daniel H

Я использую версию avconvв Ubuntu 12.04 для архивирования видео. Я бы предпочел использовать какое-то сжатие видео без потерь (например, huffyuv или FFV1), но использование оригинального видеопотока (копирование кодека) также было бы приемлемым. К сожалению, с любой из этих опций выходной файл (mkv, содержащий только видео в любом формате) намного больше, чем входной файл (vob, содержащий видео, аудио и субтитры). Я мог понять, что сжатие без потерь просто ужасно поработало с моим конкретным видео, но я не вижу причин, по которым использование кодека-копии увеличило бы размер файла.

Google поворачивает вверх один человек, имеющий такую же проблему здесь, но единственным ответом является бесполезным оскорбление, вызванное расколом libav / FFmpeg.

Есть ли причина, по которой это должно произойти, или это ошибка? Есть ли обходной путь или исправление ffmpeg, более поздняя версия avconvили другое программное обеспечение?

Обновление: кажется, что это может быть связано с этим вопросом хотя бы частично, но это не объясняет, почему это происходит, когда я использую кодек «copy». Я до сих пор не пробовал это с ffmpeg; Я планирую сделать это сегодня вечером.

Обновление 2: Вот фактическая команда и вывод, который, как я сказал несколько дней назад, должен быть доступен через несколько часов. Исходя из этого, кажется, что проблема частично, но не полностью связана с мультиплексированием, поскольку генерация необработанного файла .m2v работает без проблем (и mkvmerge работает с этим файлом без проблем). Использование флагов, которые рекомендует Libav FAQ, не помогает.

Thu 2 Aug 2012 13:58:51 MDT pts/3 (100x27) [daniel@daniel-laptop-ubuntu:~/Videos] 1 $ ls total 1774448 drwxrwxr-x 2 daniel daniel 4096 Jul 28 20:24 keep/ -rw-rw-r-- 1 daniel daniel 0 Aug 2 13:58 timings -rw-rw-r-- 1 daniel daniel 1816995840 Aug 2 12:34 Title.vob -rw-rw-r-- 1 daniel daniel 0 Aug 2 13:58 typescript Exit Code: 0  Thu 2 Aug 2012 13:58:52 MDT pts/3 (100x27) [daniel@daniel-laptop-ubuntu:~/Videos] 2 $ avprobe -v verbose Title.vob  avprobe version 0.8.3-4:0.8.3-0ubuntu0.12.04.1, Copyright (c) 2007-2012 the Libav developers built on Jun 12 2012 16:52:09 with gcc 4.6.3 configuration: --extra-version='4:0.8.3-0ubuntu0.12.04.1' --arch=amd64 --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --enable-libvpx --enable-runtime-cpudetect --enable-libfreetype --enable-vaapi --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libdc1394 --shlibdir=/usr/lib/x86_64-linux-gnu --enable-shared --disable-static libavutil 51. 22. 1 / 51. 22. 1 libavcodec 53. 35. 0 / 53. 35. 0 libavformat 53. 21. 0 / 53. 21. 0 libavdevice 53. 2. 0 / 53. 2. 0 libavfilter 2. 15. 0 / 2. 15. 0 libswscale 2. 1. 0 / 2. 1. 0 libpostproc 52. 0. 0 / 52. 0. 0 [mpeg @ 0xd4a7a0] max_analyze_duration reached Input #0, mpeg, from 'Title.vob': Duration: 00:43:35.39, start: 0.195633, bitrate: 5557 kb/s Stream #0.0[0x1e0]: Video: mpeg2video (Main), yuv420p, 720x480 [PAR 32:27 DAR 16:9], 9800 kb/s, 23.98 fps, 59.94 tbr, 90k tbn, 59.94 tbc Stream #0.1[0x20]: Subtitle: dvdsub Stream #0.2[0x21]: Subtitle: dvdsub Stream #0.3[0x22]: Subtitle: dvdsub Stream #0.4[0x23]: Subtitle: dvdsub Stream #0.5[0x24]: Subtitle: dvdsub Stream #0.6[0x25]: Subtitle: dvdsub Stream #0.7[0x80]: Audio: ac3, 48000 Hz, 5.1, s16, 448 kb/s Stream #0.8[0x81]: Audio: ac3, 48000 Hz, stereo, s16, 192 kb/s Stream #0.9[0x82]: Audio: ac3, 48000 Hz, stereo, s16, 192 kb/s (comment) Stream #0.10[0x83]: Audio: ac3, 48000 Hz, stereo, s16, 192 kb/s Exit Code: 0  Thu 2 Aug 2012 13:58:58 MDT pts/3 (100x27) [daniel@daniel-laptop-ubuntu:~/Videos] 3 $ avconv -v verbose -i Title.vob -c:v copy -map 0:v:0 Title.m2v avconv version 0.8.3-4:0.8.3-0ubuntu0.12.04.1, Copyright (c) 2000-2012 the Libav developers built on Jun 12 2012 16:52:09 with gcc 4.6.3 configuration: --extra-version='4:0.8.3-0ubuntu0.12.04.1' --arch=amd64 --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --enable-libvpx --enable-runtime-cpudetect --enable-libfreetype --enable-vaapi --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libdc1394 --shlibdir=/usr/lib/x86_64-linux-gnu --enable-shared --disable-static libavutil 51. 22. 1 / 51. 22. 1 libavcodec 53. 35. 0 / 53. 35. 0 libavformat 53. 21. 0 / 53. 21. 0 libavdevice 53. 2. 0 / 53. 2. 0 libavfilter 2. 15. 0 / 2. 15. 0 libswscale 2. 1. 0 / 2. 1. 0 libpostproc 52. 0. 0 / 52. 0. 0 [mpeg @ 0x1ab77a0] max_analyze_duration reached Input #0, mpeg, from 'Title.vob': Duration: 00:43:35.39, start: 0.195633, bitrate: 5557 kb/s Stream #0.0[0x1e0]: Video: mpeg2video (Main), yuv420p, 720x480 [PAR 32:27 DAR 16:9], 9800 kb/s, 23.98 fps, 59.94 tbr, 90k tbn, 59.94 tbc Stream #0.1[0x20]: Subtitle: dvdsub Stream #0.2[0x21]: Subtitle: dvdsub Stream #0.3[0x22]: Subtitle: dvdsub Stream #0.4[0x23]: Subtitle: dvdsub Stream #0.5[0x24]: Subtitle: dvdsub Stream #0.6[0x25]: Subtitle: dvdsub Stream #0.7[0x80]: Audio: ac3, 48000 Hz, 5.1, s16, 448 kb/s Stream #0.8[0x81]: Audio: ac3, 48000 Hz, stereo, s16, 192 kb/s Stream #0.9[0x82]: Audio: ac3, 48000 Hz, stereo, s16, 192 kb/s (comment) Stream #0.10[0x83]: Audio: ac3, 48000 Hz, stereo, s16, 192 kb/s Output #0, mpeg2video, to 'Title.m2v': Metadata: encoder : Lavf53.21.0 Stream #0.0: Video: mpeg2video, yuv420p, 720x480 [PAR 32:27 DAR 16:9], q=2-31, 9800 kb/s, 90k tbn, 90k tbc Stream mapping: Stream #0:0 -> #0:0 (copy) Press ctrl-c to stop encoding frame=62709 fps=4237 q=-1.0 Lsize= 1402285kB time=2615.30 bitrate=4392.4kbits/s  video:1402285kB audio:0kB global headers:0kB muxing overhead 0.000000% Exit Code: 0  Thu 2 Aug 2012 13:59:45 MDT pts/3 (100x27) [daniel@daniel-laptop-ubuntu:~/Videos] 4 $ avconv -v verbose -i Title.vob -c:v copy -map 0:v:0 Title.avi avconv version 0.8.3-4:0.8.3-0ubuntu0.12.04.1, Copyright (c) 2000-2012 the Libav developers built on Jun 12 2012 16:52:09 with gcc 4.6.3 configuration: --extra-version='4:0.8.3-0ubuntu0.12.04.1' --arch=amd64 --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --enable-libvpx --enable-runtime-cpudetect --enable-libfreetype --enable-vaapi --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libdc1394 --shlibdir=/usr/lib/x86_64-linux-gnu --enable-shared --disable-static libavutil 51. 22. 1 / 51. 22. 1 libavcodec 53. 35. 0 / 53. 35. 0 libavformat 53. 21. 0 / 53. 21. 0 libavdevice 53. 2. 0 / 53. 2. 0 libavfilter 2. 15. 0 / 2. 15. 0 libswscale 2. 1. 0 / 2. 1. 0 libpostproc 52. 0. 0 / 52. 0. 0 [mpeg @ 0xdec7a0] max_analyze_duration reached Input #0, mpeg, from 'Title.vob': Duration: 00:43:35.39, start: 0.195633, bitrate: 5557 kb/s Stream #0.0[0x1e0]: Video: mpeg2video (Main), yuv420p, 720x480 [PAR 32:27 DAR 16:9], 9800 kb/s, 23.98 fps, 59.94 tbr, 90k tbn, 59.94 tbc Stream #0.1[0x20]: Subtitle: dvdsub Stream #0.2[0x21]: Subtitle: dvdsub Stream #0.3[0x22]: Subtitle: dvdsub Stream #0.4[0x23]: Subtitle: dvdsub Stream #0.5[0x24]: Subtitle: dvdsub Stream #0.6[0x25]: Subtitle: dvdsub Stream #0.7[0x80]: Audio: ac3, 48000 Hz, 5.1, s16, 448 kb/s Stream #0.8[0x81]: Audio: ac3, 48000 Hz, stereo, s16, 192 kb/s Stream #0.9[0x82]: Audio: ac3, 48000 Hz, stereo, s16, 192 kb/s (comment) Stream #0.10[0x83]: Audio: ac3, 48000 Hz, stereo, s16, 192 kb/s Output #0, avi, to 'Title.avi': Metadata: ISFT : Lavf53.21.0 Stream #0.0: Video: mpeg2video, yuv420p, 720x480 [PAR 32:27 DAR 16:9], q=2-31, 9800 kb/s, 90k tbn, 90k tbc Stream mapping: Stream #0:0 -> #0:0 (copy) Press ctrl-c to stop encoding frame=62709 fps=186 q=-1.0 Lsize= 6271354kB time=2615.30 bitrate=19644.0kbits/s  video:1402285kB audio:0kB global headers:0kB muxing overhead 347.223994% Exit Code: 0  Thu 2 Aug 2012 14:05:24 MDT pts/3 (100x27) [daniel@daniel-laptop-ubuntu:~/Videos] 5 $ avconv -v verbose -i Title.vob -c:v copy -map 0:v:0 Title.mkv avconv version 0.8.3-4:0.8.3-0ubuntu0.12.04.1, Copyright (c) 2000-2012 the Libav developers built on Jun 12 2012 16:52:09 with gcc 4.6.3 configuration: --extra-version='4:0.8.3-0ubuntu0.12.04.1' --arch=amd64 --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --enable-libvpx --enable-runtime-cpudetect --enable-libfreetype --enable-vaapi --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libdc1394 --shlibdir=/usr/lib/x86_64-linux-gnu --enable-shared --disable-static libavutil 51. 22. 1 / 51. 22. 1 libavcodec 53. 35. 0 / 53. 35. 0 libavformat 53. 21. 0 / 53. 21. 0 libavdevice 53. 2. 0 / 53. 2. 0 libavfilter 2. 15. 0 / 2. 15. 0 libswscale 2. 1. 0 / 2. 1. 0 libpostproc 52. 0. 0 / 52. 0. 0 [mpeg @ 0xc0d7a0] max_analyze_duration reached Input #0, mpeg, from 'Title.vob': Duration: 00:43:35.39, start: 0.195633, bitrate: 5557 kb/s Stream #0.0[0x1e0]: Video: mpeg2video (Main), yuv420p, 720x480 [PAR 32:27 DAR 16:9], 9800 kb/s, 23.98 fps, 59.94 tbr, 90k tbn, 59.94 tbc Stream #0.1[0x20]: Subtitle: dvdsub Stream #0.2[0x21]: Subtitle: dvdsub Stream #0.3[0x22]: Subtitle: dvdsub Stream #0.4[0x23]: Subtitle: dvdsub Stream #0.5[0x24]: Subtitle: dvdsub Stream #0.6[0x25]: Subtitle: dvdsub Stream #0.7[0x80]: Audio: ac3, 48000 Hz, 5.1, s16, 448 kb/s Stream #0.8[0x81]: Audio: ac3, 48000 Hz, stereo, s16, 192 kb/s Stream #0.9[0x82]: Audio: ac3, 48000 Hz, stereo, s16, 192 kb/s (comment) Stream #0.10[0x83]: Audio: ac3, 48000 Hz, stereo, s16, 192 kb/s Output #0, matroska, to 'Title.mkv': Metadata: encoder : Lavf53.21.0 Stream #0.0: Video: mpeg2video, yuv420p, 720x480 [PAR 32:27 DAR 16:9], q=2-31, 9800 kb/s, 1k tbn, 90k tbc Stream mapping: Stream #0:0 -> #0:0 (copy) Press ctrl-c to stop encoding [matroska @ 0xc30900] Can't write packet with unknown timestamp av_interleaved_write_frame(): Invalid argument Exit Code: 1  Thu 2 Aug 2012 14:05:31 MDT pts/3 (100x27) [daniel@daniel-laptop-ubuntu:~/Videos] 6 $ ls total 9448208 drwxrwxr-x 2 daniel daniel 4096 Jul 28 20:24 keep/ -rw-rw-r-- 1 daniel daniel 16384 Aug 2 14:05 timings -rw-rw-r-- 1 daniel daniel 6421866918 Aug 2 14:05 Title.avi -rw-rw-r-- 1 daniel daniel 1435939709 Aug 2 13:59 Title.m2v -rw-rw-r-- 1 daniel daniel 680 Aug 2 14:05 Title.mkv -rw-rw-r-- 1 daniel daniel 1816995840 Aug 2 12:34 Title.vob -rw-rw-r-- 1 daniel daniel 69632 Aug 2 14:05 typescript Exit Code: 0 

Поскольку, по крайней мере, часть проблемы, по-видимому, вызвана использованием контейнеров, есть ли способ сообщить avconv генерировать необработанные файлы huffyuv или raw FFv1 без контейнера, как, например, указание расширения файла .m2v для элементарного потока MPEG-2 ?

3
Можете ли вы опубликовать точную команду, которую вы используете, и полный неразрезанный вывод консоли? slhck 11 лет назад 0
Да; Я сделаю это сегодня вечером или завтра. Я также выложу соответствующие размеры файлов. Daniel H 11 лет назад 0
У меня были неожиданные технические трудности в эти выходные; Я должен получить данные в течение нескольких часов. Daniel H 11 лет назад 0

0 ответов на вопрос

Похожие вопросы