Ich versuche, meine alten VHS-Bänder mit einem USB-Videoaufnahmegerät und dem folgenden Befehl aufzunehmen:
ffmpeg -f alsa -ac 2 -i default -f v4l2 -standard pal -i /dev/video0 -c:v libx264 -qp 0 -preset fast -strict -2 zzz.mp4
Manchmal friert ffmpeg jedoch unerwartet während der Aufnahme die Videoaufnahme ein und verbleibt im letzten Bild (Audio wird weiterhin aufgenommen). Die Fehlermeldung sieht ungefähr so aus:
[video4linux2,v4l2 @ 0x23e51a0] Dequeued v4l2 buffer contains 414720 bytes, but 829440 were expected. Flags: 0x00002005.
/dev/video0: Invalid data found when processing input
Ich habe im Internet fast keine Informationen darüber gefunden. Das Problem wurde hier als Funktionsanforderung beschrieben: https://trac.ffmpeg.org/ticket/4795
Außerdem hatte ich vor diesem Fehler ein Problem mit einer Warnmeldung, die nicht verwandt zu sein scheint und die Videoaufzeichnung nicht zu beeinträchtigen scheint, aber ich frage mich auch, was dies bedeutet:
[video4linux2,v4l2 @ 0x23e51a0] Thread message queue blocking; consider raising the thread_queue_size option (current value: 8)
[alsa @ 0x23cc360] Thread message queue blocking; consider raising the thread_queue_size option (current value: 8)
Bei der Verwendung von Versuch und Irrtum scheinen die Warnungen zu verschwinden, wenn ich -f v4l2 -thread_queue_size 32
und einstelle
-f alsa -thread_queue_size 2048
. Ich weiß nicht warum. Wenn ich die Thread-Warteschlangengröße für den Videoeingang beispielsweise auf 512 erhöhe, wird keine Warnung angezeigt, aber ich habe Frames gelöscht.
Ich wünschte, ich könnte ffmpeg für meine Aufnahmen verwenden. VLC hat keine Probleme mit der Aufnahme, aber ich habe auch Probleme mit den Parametern, ich habe sie noch nicht genug studiert. Wenn jemand einen alternativen Befehl für vlc vorschlagen kann, um verlustfrei aufzunehmen, werde ich zu vlc wechseln ...
Die volle Ausgabe von ffmpeg ist:
$ ffmpeg -f alsa -ac 2 -i default -f v4l2 -standard pal -i /dev/video0 -c:v libx264 -qp 0 -preset fast -strict -2 zzz.mp4
ffmpeg version 2.7.6-0ubuntu0.15.10.1 Copyright (c) 2000-2016 the FFmpeg developers
built with gcc 5.2.1 (Ubuntu 5.2.1-22ubuntu2) 20151010
configuration: --prefix=/usr --extra-version=0ubuntu0.15.10.1 --build-suffix=-ffmpeg --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --enable-shared --disable-stripping --enable-avresample --enable-avisynth --enable-frei0r --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-openal --enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libshine --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libxvid --enable-libzvbi --enable-opengl --enable-x11grab --enable-libdc1394 --enable-libiec61883 --enable-libzmq --enable-libssh --enable-libsoxr --enable-libx264 --enable-libopencv --enable-libx265
libavutil 54. 27.100 / 54. 27.100
libavcodec 56. 41.100 / 56. 41.100
libavformat 56. 36.100 / 56. 36.100
libavdevice 56. 4.100 / 56. 4.100
libavfilter 5. 16.101 / 5. 16.101
libavresample 2. 1. 0 / 2. 1. 0
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 2.100 / 1. 2.100
libpostproc 53. 3.100 / 53. 3.100
Guessed Channel Layout for Input Stream #0.0 : stereo
Input #0, alsa, from 'default':
Duration: N/A, start: 1457422230.571465, bitrate: 1536 kb/s
Stream #0:0: Audio: pcm_s16le, 48000 Hz, 2 channels, s16, 1536 kb/s
Input #1, video4linux2,v4l2, from '/dev/video0':
Duration: N/A, start: 4454.267377, bitrate: 165888 kb/s
Stream #1:0: Video: rawvideo (UYVY / 0x59565955), uyvy422, 720x576, 165888 kb/s, 25 fps, 25 tbr, 1000k tbn, 1000k tbc
File 'zzz.mp4' already exists. Overwrite ? [y/N] y
No pixel format specified, yuv422p for H.264 encoding chosen.
Use -pix_fmt yuv420p for compatibility with outdated media players.
[libx264 @ 0x231cd00] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 LZCNT
[libx264 @ 0x231cd00] profile High 4:4:4 Predictive, level 3.0, 4:2:2 8-bit
[libx264 @ 0x231cd00] 264 - core 146 r2555 0c21480 - H.264/MPEG-4 AVC codec - Copyleft 2003-2015 - http://www.videolan.org/x264.html - options: cabac=1 ref=2 deblock=1:0:0 analyse=0x1:0x111 me=hex subme=6 psy=0 mixed_ref=1 me_range=16 chroma_me=1 trellis=0 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=0 chroma_qp_offset=0 threads=3 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=1 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc=cqp mbtree=0 qp=0
Output #0, mp4, to 'zzz.mp4':
Metadata:
encoder : Lavf56.36.100
Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv422p, 720x576, q=-1--1, 25 fps, 12800 tbn, 25 tbc
Metadata:
encoder : Lavc56.41.100 libx264
Stream #0:1: Audio: aac ([64][0][0][0] / 0x0040), 48000 Hz, stereo, fltp, 128 kb/s
Metadata:
encoder : Lavc56.41.100 aac
Stream mapping:
Stream #1:0 -> #0:0 (rawvideo (native) -> h264 (libx264))
Stream #0:0 -> #0:1 (pcm_s16le (native) -> aac (native))
Press [q] to stop, [?] for help
[video4linux2,v4l2 @ 0x231a180] Thread message queue blocking; consider raising the thread_queue_size option (current value: 8)
[alsa @ 0x2301360] Thread message queue blocking; consider raising the thread_queue_size option (current value: 8)
[video4linux2,v4l2 @ 0x231a180] Dequeued v4l2 buffer contains 414720 bytes, but 829440 were expected. Flags: 0x00002005.
/dev/video0: Invalid data found when processing input
frame= 1962 fps= 17 q=-1.0 Lsize= 409086kB time=00:01:53.53 bitrate=29516.7kbits/s
video:407234kB audio:1777kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.018333%
[libx264 @ 0x231cd00] frame I:346 Avg QP: 0.00 size:186290
[libx264 @ 0x231cd00] frame P:1616 Avg QP: 0.00 size:218162
[libx264 @ 0x231cd00] mb I I16..4: 92.3% 0.0% 7.7%
[libx264 @ 0x231cd00] mb P I16..4: 76.1% 0.0% 22.8% P16..4: 0.2% 0.5% 0.4% 0.0% 0.0% skip: 0.0%
[libx264 @ 0x231cd00] 8x8 transform intra:0.0% inter:76.8%
[libx264 @ 0x231cd00] coded y,uvDC,uvAC intra: 100.0% 100.0% 100.0% inter: 100.0% 100.0% 100.0%
[libx264 @ 0x231cd00] i16 v,h,dc,p: 0% 100% 0% 0%
[libx264 @ 0x231cd00] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 10% 78% 3% 1% 2% 3% 1% 3% 1%
[libx264 @ 0x231cd00] i8c dc,h,v,p: 1% 98% 0% 0%
[libx264 @ 0x231cd00] Weighted P-Frames: Y:31.7% UV:20.6%
[libx264 @ 0x231cd00] ref P L0: 52.8% 47.2%
[libx264 @ 0x231cd00] kb/s:42508.35
ffmpeg
aus dem aktuellen Git-Master-Zweig zu testen . Herunterladen .Antworten:
Ich konnte keine Lösung für dieses ffmpeg-Problem finden und habe kürzlich den folgenden Artikel gefunden :
Also fing ich an, stattdessen Mencoder zu verwenden. Dieser Blog hat mir geholfen, Mencoder zu verwenden: http://easycap.blogspot.com/p/command-line-tv.html
Ich habe MPlayer (der Mencoder enthält) mit dem unter http://www.mplayerhq.hu angegebenen Quellcode kompiliert
quelle
ffmpeg -f alsa -ac 2 -i default -f v4l2 -standard pal -err_detect ignore_err -i /dev/video0 -c:v libx264 -qp 0 -preset fast -strict -2 zzz.mp4
Dies ist immer noch ein Fehler in ffmpeg 3.3. Obwohl sich ffplay nach diesem Fehler korrekt erholt (was für mich bei Szenenwechseln / schnellem Vorlauf der Fall ist), stoppt ffmpeg nur die Verarbeitung von Frames. Ich hatte das gleiche Problem mit diesem Gerät und konnte den Mencoder nicht dazu bringen, die genauen Parameter zu verwenden (insbesondere in Bezug auf Deinterlacing), die ich wollte. Deshalb habe ich eine Kombination aus Mencoder (RAW-AVI zu STDOUT) und FFMPEG (YADIF DEINTERLACE, MAP) verwendet Audio, encodiere x264 und mux zu mkv) was super funktioniert.
Sie könnten natürlich die AVI-Rohdaten direkt speichern, aber mit ~ 70 GByte / h hatte ich nicht genug Platz dafür.
(Teilweise von hier genommen )
mencoder -endpos 1:40:00 tv:// -tv device=/dev/video0:input=4:norm=PAL:width=720:height=576:alsa:adevice=hw.3:forceaudio:buffersize=128 -oac pcm -ovc copy -o - -really-quiet | ffmpeg -i - -vf yadif=mode=send_field:parity=tff -map_channel 0.1.1 -c:a flac -c:v libx264 -preset veryfast -crf 16 011.mkv
quelle