georg1
Anmeldungsdatum: 10. Februar 2010
Beiträge: Zähle...
Wohnort: nahe DD
|
hallo allerseits, ich weiss nicht wieviele von Euch diese schätze auf Hi8 noch zu hause haben, mein schwiegervater (geht stark auf die 100 zu) wollte noch einmal die urlaubsvideos sehen ☺ Mit diesem videograbber , den ich schon mit ubuntu 16.04 LTS "erfolgreich" mit VLC verwendet habe, habe ich dieses problem: - in Qt V4L2 test utility sehe ich schlechtes bild und nur einen abgehackten ton, hab aber immer noch keine aufnahme... - in VLC (mit ubuntu 18.04 LTS) bekomme ich (trotz umfangreicher suche im netz) immer noch nur die fehlermeldung ( VLC kann die Medienadresse 'v4l2:///dev/video0' nicht öffnen. Für Details bitte im Fehlerprotokoll nachsehen.) - mit diesem shell-befehl: ffmpeg -f v4l2 -standard PAL -thread_queue_size 512 -i /dev/video0 -f alsa -thread_queue_size 512 -i hw:0,0 -vcodec mpeg4 -b:v 1800k -s 640x480 -r 25 -aspect 16:9 -acodec libmp3lame -b:a 128k -channels 2 -ar 48000 test_0001.mkv
bekomme ich für meine bedürfnisse ein hervorragendes bild, allerdings keinen ton. Ich kenne mich mit der befehlszeile immer noch nicht gut aus und habe keine ahnung wie ich das mit dem ton hinbekommen soll/kann. kann mir da bitte jemand helfen? gruss georg Moderiert von pepre: Entspamt.
Bearbeitet von pepre: Bitte Codeblöcke verwenden (Das Klicki mit dem Zahnrad).
|
pepre
Supporter
Anmeldungsdatum: 31. Oktober 2005
Beiträge: 6462
Wohnort: Erlangen
|
S. Videograbbing. Wenn du ffmpeg nutzt, dann musst du ihm schon mitteilen, von welchem Audiodevice er grabben soll. Das "hw:0,0" kann zufällig stimmen, muss aber nicht, wahrscheinlich eher nicht. Zudem muss die Audioquelle in Alsamixer als Recordquelle gewählt sein.
Ich kenne mich mit der befehlszeile immer noch nicht gut aus
IdF liegt das daran, dass du ffmpeg als Programm gewählt hast. Das ist zwar die eierlegende Wollmilchsau, braucht aber eine (auf den ersten Blick) kryptische Kommandozeile. ☺
|
georg1
(Themenstarter)
Anmeldungsdatum: 10. Februar 2010
Beiträge: 84
Wohnort: nahe DD
|
hi pepre, der hinweis auf "hv0,0" war goldrichtig, es muss heissen 2,0... vielen dank nochmals, es läuft!
|
georg1
(Themenstarter)
Anmeldungsdatum: 10. Februar 2010
Beiträge: 84
Wohnort: nahe DD
|
ich war da vielleicht ein bischen voreilig 😢 beim versuch eine ganze videocassette aufzunehmen wird jetzt der ton aufgenommen, das bild bleibt aber mal gleich am anfang mit einem standbild stehen und bei einer anderen cassette bricht die bildaufnahme unvermittelt ab, die tonaufnahme läuft wie gesagt weiter. Im sucher der cam läuft das video auch normal weiter... Im gegensatz zu der eierlegenden wollmilchsau - ffmpeg, was gibts da noch für möglichkeiten? VLC krieg ich - wie bereits geschrieben - nicht zum laufen, obwohl mir eine grafische oberfläche schon lieber wäre, bei der befehlszeile wird dann im terminal zwar was ausgegeben, aber als monitoring der aufnahme ist das eher ungeeignet ☹
|
pepre
Supporter
Anmeldungsdatum: 31. Oktober 2005
Beiträge: 6462
Wohnort: Erlangen
|
Du betreibst ffmpeg mit "-vcodec mpeg4", d.h. du lässt ihn in Echtzeit ein H264-Video berechnen. Da brauchst du schon ordentlich Rechenpower im Gehäuse... 🙄 Normalerweise lässt man beim Digitalisieren erst mal alles weg und kopiert einfach den Datenstrom. Nachbearbeiten passiert später. ffmpeg -f v4l2 -standard PAL -thread_queue_size 512 -i /dev/video0 -f alsa -thread_queue_size 512 -i hw:2,0 -c:v copy -c:a copy test_0001.ts Das könnte funktionieren. Das rippt in einen simplen TS-Container (Transport Stream). Falls simples kopieren nicht geht nimmt man sehr wenig rechenintensive Codecs:
-c:v mpeg2video -qscale:v 2 -c:a mp2 -b:a 192k Falls du natürlich genug Rechenpower hast kannst du auch mit anspruchsvolleren Codecs hantieren, - was aber die Störanfälligkeit erhöht.
das bild bleibt aber mal gleich am anfang mit einem standbild stehen
Falls das trotz der einfacheren Codes immer noch passiert, dann mal beide thread_queue_size -Parameter auf 1024 oder 2048 erhöhen.
... aber als monitoring der aufnahme ist das eher ungeeignet
Ganz im Gegenteil ist das sogar sehr geeignet, weil es nur (!) aufnimmt. D.h. es verbraucht keine Rechenpower für irgendwelchen Schnickschnack wie Monitoring oder Klicki-Bunti-Knöpfchen, was die Gefahr von Aussetzern deutlich reduziert. Man kann dennoch (zeitversetzt) monitoren: einfach 10 oder 20s nach Beginn der Aufzeichnung einen Player auf den entstehenden Stream loslassen. ZB mplayer kann sowas idR. Wenn mplayer dann einfrieren sollte läuft die Aufnahme unbeeindruckt weiter.
was gibts da noch für möglichkeiten?
Kuck ins Wiki: Multimedia, dafür ist es da.
|
georg1
(Themenstarter)
Anmeldungsdatum: 10. Februar 2010
Beiträge: 84
Wohnort: nahe DD
|
ok, dank deiner tipps, pepre, ein teilerfolg - ich habe jetzt einen TS-container, grösse ca. 400mb, das video war ca. 25 minuten lang. Ob die grösse angemessen ist kann ich natürlich nicht beurteilen, in der durchlaufenden anzeige im terminal gab es keine besonderheiten zu erkennen, alles lief gleichmässig ab, die bitrate stieg anfangs von 0 auf dann gleichmässige ca. 1700... beim versuch einer weiterbearbeitung zu mp4 stehe ich allerdings weiter vor verschlossenen türen... VLC - die ts-datei lässt sich nicht konvertieren, VLC tut einfach nix, beim start läuft ein paarmal ein "gelber" streifen in der fortschrittszeile hin und her, dann gehen die 0:0 anzeigen wieder auf -:- zurück. handbrake - nicht mal so viel, es passiert nichts... und nun?
|
pepre
Supporter
Anmeldungsdatum: 31. Oktober 2005
Beiträge: 6462
Wohnort: Erlangen
|
georg1 schrieb:
... ein teilerfolg - ich habe jetzt einen TS-container
Das ist kein bescheidener Teilerfolg, - du hast es digitalisiert. Und das war ja das (erste) Ziel. Freu dich doch mal! 😉
beim versuch einer weiterbearbeitung zu mp4 stehe ich allerdings weiter vor verschlossenen türen...
Willst du das einfach umwandeln? Dann hilft das hier (keine Ahnung, ob das Material interlaced vorliegt, deshalb vorichtshalber die zweite Zeile):
# ohne deinterlacer
ffmpeg -i test.ts -map 0 -c:v libx264 -preset slow -crf 20 -ac 2 -c:a libmp3lame -qscale:a 2 out.mkv
# mit deinterlacer:
ffmpeg -i test.ts -map 0 -vf yadif=0 -c:v libx264 -preset slow -crf 20 -ac 2 -c:a libmp3lame -qscale:a 2 out.mkv ... wird seine Zeit dauern, ich habe da eine gute Qualität ("-preset slow" und "-crf 20") gewählt. Noch besser wird es mit "-crf 18" und für Audio mit "-qscale:a 0". Raus kommt ein MKV-Container mit H264-Video- und MP3-Ton-Spur; das sollte eigentlich jeder Player fressen, der MKV erkennt. Natürlich könntest du noch viel mehr machen, wie gesagt: eierlegende Wollmilchsau 😉 Verwendet x264 und lame, also ggf nachinstallieren
sudo apt-get install x264 libx264-152 lame Wenn du noch schneiden willst, dann bietet sich avidemux an, das kann mit solchen ts-Dateien. Generell ist zu sagen: Videobearbeitung ist nicht pille-palle, da braucht es Know-how. Auch wenn die schicken Klicki-bunti-Programme anderes suggerieren mögen.
|
georg1
(Themenstarter)
Anmeldungsdatum: 10. Februar 2010
Beiträge: 84
Wohnort: nahe DD
|
auf die zeile ohne deinterlacer: | ffmpeg -i test_0001.ts -map 0 -vf yadif=0 -c:v libx264 -preset slow -crf 20 -ac 2 -c:a libmp3lame -qscale:a 2 out_0001.mkv
|
kommt die meldung: 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 | ffmpeg version 3.4.6-0ubuntu0.18.04.1 Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 7 (Ubuntu 7.3.0-16ubuntu3)
configuration: --prefix=/usr --extra-version=0ubuntu0.18.04.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --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-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-librsvg --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared
libavutil 55. 78.100 / 55. 78.100
libavcodec 57.107.100 / 57.107.100
libavformat 57. 83.100 / 57. 83.100
libavdevice 57. 10.100 / 57. 10.100
libavfilter 6.107.100 / 6.107.100
libavresample 3. 7. 0 / 3. 7. 0
libswscale 4. 8.100 / 4. 8.100
libswresample 2. 9.100 / 2. 9.100
libpostproc 54. 7.100 / 54. 7.100
[mpegts @ 0x5573d802e960] start time for stream 0 is not set in estimate_timings_from_pts
Input #0, mpegts, from 'test_0001.ts':
Duration: 00:33:36.38, start: 1.400000, bitrate: 1716 kb/s
Program 1
Metadata:
service_name : Service01
service_provider: FFmpeg
Stream #0:0[0x100]: Data: bin_data ([6][0][0][0] / 0x0006)
Stream #0:1[0x101]: Data: bin_data ([6][0][0][0] / 0x0006)
[matroska @ 0x5573d8034ba0] Tag [6][0][0][0] incompatible with output codec id '100359' ([0][0][0][0])
Could not write header for output file #0 (incorrect codec parameters ?): Invalid data found when processing input
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #0:1 -> #0:1 (copy)
Last message repeated 1 times
|
auf die mit deinterlacer: | ffmpeg -i test_0001.ts -map 0 -vf yadif=0 -c:v libx264 -preset slow -crf 20 -ac 2 -c:a libmp3lame -qscale:a 2 out_0001.mkv
|
kommt: 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 | slow -crf 20 -ac 2 -c:a libmp3lame -qscale:a 2 out_0001.mkv
ffmpeg version 3.4.6-0ubuntu0.18.04.1 Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 7 (Ubuntu 7.3.0-16ubuntu3)
configuration: --prefix=/usr --extra-version=0ubuntu0.18.04.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --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-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-librsvg --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared
libavutil 55. 78.100 / 55. 78.100
libavcodec 57.107.100 / 57.107.100
libavformat 57. 83.100 / 57. 83.100
libavdevice 57. 10.100 / 57. 10.100
libavfilter 6.107.100 / 6.107.100
libavresample 3. 7. 0 / 3. 7. 0
libswscale 4. 8.100 / 4. 8.100
libswresample 2. 9.100 / 2. 9.100
libpostproc 54. 7.100 / 54. 7.100
[mpegts @ 0x555d4623e960] start time for stream 0 is not set in estimate_timings_from_pts
Input #0, mpegts, from 'test_0001.ts':
Duration: 00:33:36.38, start: 1.400000, bitrate: 1716 kb/s
Program 1
Metadata:
service_name : Service01
service_provider: FFmpeg
Stream #0:0[0x100]: Data: bin_data ([6][0][0][0] / 0x0006)
Stream #0:1[0x101]: Data: bin_data ([6][0][0][0] / 0x0006)
[matroska @ 0x555d46244ba0] Tag [6][0][0][0] incompatible with output codec id '100359' ([0][0][0][0])
Could not write header for output file #0 (incorrect codec parameters ?): Invalid data found when processing input
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #0:1 -> #0:1 (copy)
Last message repeated 1 times
|
die datei out_0001.mkv mit der grösse von 0B wurde jeweils angelegt...
ich bin weit davon entfernt das zu verstehen ☹
|
pepre
Supporter
Anmeldungsdatum: 31. Oktober 2005
Beiträge: 6462
Wohnort: Erlangen
|
Du hast mit copy/copy gerippt, nicht wahr?! Weiter oben hatte ich geschrieben:
Falls simples kopieren nicht geht nimmt man sehr wenig rechenintensive Codecs
Das scheint der Fall zu sein.
|
georg1
(Themenstarter)
Anmeldungsdatum: 10. Februar 2010
Beiträge: 84
Wohnort: nahe DD
|
das hier versuche ich jetzt:
| ffmpeg -f v4l2 -standard PAL -thread_queue_size 512 -i /dev/video0 -f alsa -thread_queue_size 512 -i hw:2,0 -c:v mpeg2video -qscale:v 2 -c:a mp2 -b:a 192k test_0001.ts
|
das sind die "normalen" meldungen im terminal:
| frame= 948 fps= 25 q=2.0 size= 106240kB time=00:00:37.80 bitrate=23024.3kbits/s speed=0.998x
|
das kommt aber zwischendurch auch: 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 | frame= 7234 fps= 25 q=2.0 size= 829440kB time=00:04:49.28 bitrate=23488.6kbits/s speed= 1x
Past duration 0.602364 too large
Past duration 0.602425 too large
Past duration 0.602211 too large
Past duration 0.602364 too large
Past duration 0.602394 too large
Past duration 0.602364 too large
Past duration 0.602394 too large
Past duration 0.602364 too large
Past duration 0.602486 too large
Past duration 0.602272 too large
Past duration 0.602364 too large
Past duration 0.602547 too large
Past duration 0.602837 too large
frame= 7247 fps= 25
q=2.0 size= 830976kB time=00:04:49.80 bitrate=23489.8kbits/s speed= 1x
|
ist das ein problem?
|
pepre
Supporter
Anmeldungsdatum: 31. Oktober 2005
Beiträge: 6462
Wohnort: Erlangen
|
Keine Ahnung ☺ Stockt das Video bei Frame 7234? Alternativ kannst du mal das probieren:
ffmpeg -f v4l2 -standard PAL -thread_queue_size 512 -i /dev/video0 -f alsa -thread_queue_size 512 -i hw:2,0 -c:v mpeg2video -qscale:v 2 -c:a mp2 -b:a 192k -y test_0001.mkv -async 1 -vsync 1 Unterschied: das wird gleich in einen mkv gesteckt, und zusätzlich noch mit den Optionen "-async 1 -vsync 1".
|
georg1
(Themenstarter)
Anmeldungsdatum: 10. Februar 2010
Beiträge: 84
Wohnort: nahe DD
|
ich weiss nicht wie ich das stocken beim bestimmten frame feststellen kann/soll? Aber was anderes.... Ich habe jetzt 2 casetten in den ts-container überspielen können - und ich freue mich drüber ☺ - ich kann sie auch mit VLC abspielen ☺
allerdings kommt bei der dritten jetzt diese fehlermeldung, bei der die speicherung auch sofort abbricht: | [video4linux2,v4l2 @ 0x55e06c4f3a40] Dequeued v4l2 buffer contains 414720 bytes, but 829440 were expected. Flags: 0x00002001.
/dev/video0: Invalid data found when processing input
|
was ist das nun wieder für ein "teufelszeug"? Klingt so, als wäre irgendwo nicht speicher genug vorhanden?
|
pepre
Supporter
Anmeldungsdatum: 31. Oktober 2005
Beiträge: 6462
Wohnort: Erlangen
|
georg1 schrieb: ich weiss nicht wie ich das stocken beim bestimmten frame feststellen kann/soll?
Ankucken? 😉 [...] was ist das nun wieder für ein "teufelszeug"?
Ist bekannt und gepachted: der eingehende Videostream hat einen Fehler. Wahrscheinlich korrespondiert das mit einem "Stop" im Filmmaterial und die Hi8 hat das nicht sauber zu Ende geschrieben. ffmpeg ist da pingelig (zu Recht). Der o.g. Patch setzt das Fehlerverhalten von ffmpeg von "Error" auf "Warning", d.h. die Aufnahme läuft weiter statt zu stoppen. Da der Patch erst am 30 Jul 2019 einbracht worden ist wird dein ffmpeg nicht aktuell genug sein um ihn zu beinhalten. Du könntest ein aktuelleres ffmpeg installieren:
sudo -i
cd /opt
wget https://johnvansickle.com/ffmpeg/builds/ffmpeg-release-amd64-static.tar.xz
xzcat ffmpeg-release-amd64-static.tar.xz | tar -xv
exit Das installiert eine aktuelle Version am Paketsystem vorbei, beeinträchtigt also dein System nicht. Allerdings musst du dann den Aufruf ändern, damit er die neuere Version benutzt. Statt schlicht "ffmpeg" heißt das nun:
/opt/ffmpeg-4.2.1-amd64-static/ffmpeg -f v4l2 -standard PAL -thread_queu ...
|
pepre
Supporter
Anmeldungsdatum: 31. Oktober 2005
Beiträge: 6462
Wohnort: Erlangen
|
S.o., hab's korrigiert. Aufruf dann mit
/opt/ffmpeg-4.2.1-amd64-static/ffmpeg Bearbeitet von pepre: Ich hab mal aufgeräumt. 😉
|
georg1
(Themenstarter)
Anmeldungsdatum: 10. Februar 2010
Beiträge: 84
Wohnort: nahe DD
|
dieser aufruf:
| /opt/ffmpeg-4.2.1-amd64-static/ffmpeg -f v4l2 -standard PAL -thread_queue_size 512 -i /dev/video0 -f alsa -thread_queue_size 512 -i hw:2,0 -c:v mpeg2video -qscale:v 2 -c:a mp2 -b:a 192k neuenhagen.ts
|
wird so komentiert: 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 | ffmpeg version 4.2.1-static https://johnvansickle.com/ffmpeg/ Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 6.3.0 (Debian 6.3.0-18+deb9u1) 20170516
configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc-6 --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gmp --enable-libgme --enable-gray --enable-libaom --enable-libfribidi --enable-libass --enable-libvmaf --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librubberband --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libvorbis --enable-libopus --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libdav1d --enable-libxvid --enable-libzvbi --enable-libzimg
libavutil 56. 31.100 / 56. 31.100
libavcodec 58. 54.100 / 58. 54.100
libavformat 58. 29.100 / 58. 29.100
libavdevice 58. 8.100 / 58. 8.100
libavfilter 7. 57.100 / 7. 57.100
libswscale 5. 5.100 / 5. 5.100
libswresample 3. 5.100 / 3. 5.100
libpostproc 55. 5.100 / 55. 5.100
Input #0, video4linux2,v4l2, from '/dev/video0':
Duration: N/A, start: 27544.153109, bitrate: 165888 kb/s
Stream #0:0: Video: rawvideo (UYVY / 0x59565955), uyvy422, 720x576, 165888 kb/s, 25 fps, 25 tbr, 1000k tbn, 1000k tbc
ALSA lib ../../src/conf.c:3558:(snd_config_hooks_call) Cannot open shared library libasound_module_conf_pulse.so (/usr/lib/alsa-lib/libasound_module_conf_pulse.so: libasound_module_conf_pulse.so: cannot open shared object file: No such file or directory)
ALSA lib ../../../src/pcm/pcm.c:2564:(snd_pcm_open_noupdate) Unknown PCM hw:2,0
[alsa @ 0x6fa1e80] cannot open audio device hw:2,0 (No such file or directory)
hw:2,0: Input/output error
georg@georg-pc:~$
|
|