Avconv erhöht die Dateigröße

2187
Daniel H

Ich verwende die Version von avconvUbuntu 12.04 zum Archivieren von Videos. Ich würde vorzugsweise eine Art verlustfreie Videokomprimierung verwenden (z. B. huffyuv oder FFV1), aber die Verwendung des ursprünglichen Videostreams (Copy-Codec) wäre ebenfalls akzeptabel. Bei einer dieser Optionen ist die Ausgabedatei (mkv, die nur das Video in einem beliebigen Format enthält) leider viel größer als die Eingabedatei (VOB, die Video, Audio und Untertitel enthält). Ich konnte verstehen, ob die verlustfreie Komprimierung gerade bei meinem Video eine schreckliche Arbeit geleistet hat, aber ich sehe keinen Grund, warum die Verwendung des Copy-Codecs die Dateigröße erhöht.

Google taucht hier eine Person auf, die das gleiche Problem hat, aber die einzige Antwort ist eine nutzlose Beleidigung, die durch die Trennung von libav / ffmpeg verursacht wird.

Gibt es einen Grund, warum dies passieren sollte, oder ist dies ein Fehler? Gibt es eine Problemumgehung oder ein Fix in ffmpeg, eine spätere Version avconvoder eine andere Software?

Update: Es hat den Anschein, dass es zumindest teilweise mit dieser Frage zusammenhängt, aber das erklärt nicht, warum es passiert, wenn ich einen Codec von "copy" verwende. Ich habe dies noch nicht mit ffmpeg versucht; Das habe ich heute Abend vor.

Update 2: Hier ist der eigentliche Befehl und die Ausgabe, die ich vor einigen Tagen sagte, sollte in wenigen Stunden verfügbar sein. Aus diesem Grund scheint es, dass das Problem teilweise, aber nicht vollständig auf Muxing zurückzuführen ist, da das Erzeugen einer .m2v-Rohdatei ohne Probleme funktioniert (und mkvmerge mit dieser Datei ohne Probleme arbeitet). Die im Libav FAQ empfohlenen Flags helfen nicht.

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 

Da zumindest ein Teil des Problems durch die Verwendung von Containern verursacht zu werden scheint, gibt es eine Möglichkeit, avconv anzuweisen, rohe huffyuv- oder rohe FFv1-Dateien ohne Container zu generieren, wie das Festlegen einer Dateierweiterung von .m2v für einen MPEG-2-Elementarstream ?

3
Können Sie den genauen Befehl, den Sie verwenden, und die vollständige ungeschnittene Konsolenausgabe posten? slhck vor 11 Jahren 0
Ja; Ich mache das heute Abend oder morgen. Ich werde auch die relevanten Dateigrößen posten. Daniel H vor 11 Jahren 0
Ich hatte an diesem Wochenende unerwartete technische Schwierigkeiten. Ich sollte die Daten innerhalb weniger Stunden zur Verfügung haben. Daniel H vor 11 Jahren 0

0 Antworten auf die Frage