ffmpeg geht nicht - Raspbian 32bit lite

Sound, Digitalkameras, TV+Video und Spiele.
Antworten
CBG
Beiträge: 95
Registriert: 16.12.2013 22:53:07

ffmpeg geht nicht - Raspbian 32bit lite

Beitrag von CBG » 09.03.2024 19:03:10

Hi Leute,

warum geht der Dreck nicht:
1)

Code: Alles auswählen

ffmpeg -f alsa -ac 1 -i hw:1,0 -f v4l2 -s 1280x720 -i /dev/video0 /media/video.avi
Ergebnis:

Code: Alles auswählen

[alsa @ 0x209c4c0] cannot set channel count to 2 (Invalid argument)
hw:1,0: Input/output error
?

Irgendwie gehen die Standardbefehle nicht mehr?

Was ist da lso?

niemand
Beiträge: 501
Registriert: 22.12.2023 16:35:53
Kontaktdaten:

Re: ffmpeg geht nicht - Raspbian 32bit lite

Beitrag von niemand » 09.03.2024 19:21:25

CBG hat geschrieben: ↑ zum Beitrag ↑
09.03.2024 19:03:10
warum geht der Dreck nicht:
Der Dreck hat halt nur ’nen mistigen Mono-Eingang für Audio, also nur einen dämlichen Kanal.

(ich hoffe, die Ausdrucksweise entspricht deiner Erwartung? Ich habe mich zumindest bemüht)
„I fought in the Vim-Emacs-War.“ Quelle

CBG
Beiträge: 95
Registriert: 16.12.2013 22:53:07

Re: ffmpeg geht nicht - Raspbian 32bit lite

Beitrag von CBG » 10.03.2024 10:05:20

niemand hat geschrieben: ↑ zum Beitrag ↑
09.03.2024 19:21:25
CBG hat geschrieben: ↑ zum Beitrag ↑
09.03.2024 19:03:10
warum geht der Dreck nicht:
Der Dreck hat halt nur ’nen mistigen Mono-Eingang für Audio, also nur einen dämlichen Kanal.

(ich hoffe, die Ausdrucksweise entspricht deiner Erwartung? Ich habe mich zumindest bemüht)
Hi, der Ausdruck kommt schon fast meinen Erwartung nah, geht aber noch was :) Lass uns das Drecksprogramm fertig machen :)
Ich bemühe mich auch, das Programm runterzuputzen bis der Arzt kommt :)

Na jedenfalls verstehe ich nicht, warum dieses Drecksprogramm zwei Kanäle ansprechen will, wenn ich dem doch durch " -f alsa -ac 1 " einen Kanal mitgebe.

Da heißt es immer ffmpeg ist so toll und macht alles alleine, wenn es aber drauf ankommt, versagt das verkackte Ding.

Ich hatte diesen Code einmal genutzt, der unter Raspbian Buster gut funktioniert hat:

Code: Alles auswählen

ffmpeg -f alsa -ac 1 -i hw:1,0 -f v4l2 -s 1280x720 -i /dev/video0 -filter:v fps=30 -codec:v h264_omx -acodec ac3 -ar 44100  -y -vf "hflip, vflip, drawtext=fontfile=/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf: text='%{localtime\:%d-%m-%Y-%T}': fontcolor=blue@0.8: x=7: y=700" /media/link/dashcam/video_$(date +"%d-%m-%Y").mkv
Aufgrund der fehlenden OMX Sache geht das Dreckstool aber nicht mehr.

niemand
Beiträge: 501
Registriert: 22.12.2023 16:35:53
Kontaktdaten:

Re: ffmpeg geht nicht - Raspbian 32bit lite

Beitrag von niemand » 10.03.2024 10:23:17

CBG hat geschrieben: ↑ zum Beitrag ↑
10.03.2024 10:05:20
geht aber noch was
Hm. Eigentlich wollte ich damit subtil darauf aufmerksam gemacht haben, dass dieser Stil nicht sehr ansprechend ist. Scheint mir misslungen zu sein, deswegen hier nochmal im Klartext: das ist kein sprachliches Niveau, auf das ich mich freiwillig begebe – und ich bin mir ziemlich sicher, dass es einigen der sehr kompetenten User hier nicht anders geht. Sprich: du reduzierst damit die Wahrscheinlichkeit, dass sich jemand des Problems annimmt, deutlich.

Ansonsten würde ich nun zunächst mit ALSA Werkzeugen schauen, wie’s denn tatsächlich auf dessen Seite aussieht. Natürlich, nachdem ich sichergestellt hätte, dass Pulse bzw. Pipewire nicht im Spiel sind. Zumindest, wenn ich auf die Nutzung von plain ALSA bestehen würde. Aber wie gesagt: ich mag mich angesichts des Niveaus da auch grad nicht näher mit befassen; vielleicht findet sich ja jemand, den es weniger stört.

o/
„I fought in the Vim-Emacs-War.“ Quelle

CBG
Beiträge: 95
Registriert: 16.12.2013 22:53:07

Re: ffmpeg geht nicht - Raspbian 32bit lite

Beitrag von CBG » 10.03.2024 12:06:26

niemand hat geschrieben: ↑ zum Beitrag ↑
10.03.2024 10:23:17
CBG hat geschrieben: ↑ zum Beitrag ↑
10.03.2024 10:05:20
geht aber noch was
Hm. Eigentlich wollte ich damit subtil darauf aufmerksam gemacht haben, dass dieser Stil nicht sehr ansprechend ist. Scheint mir misslungen zu sein, deswegen hier nochmal im Klartext: das ist kein sprachliches Niveau, auf das ich mich freiwillig begebe – und ich bin mir ziemlich sicher, dass es einigen der sehr kompetenten User hier nicht anders geht. Sprich: du reduzierst damit die Wahrscheinlichkeit, dass sich jemand des Problems annimmt, deutlich.

Ansonsten würde ich nun zunächst mit ALSA Werkzeugen schauen, wie’s denn tatsächlich auf dessen Seite aussieht. Natürlich, nachdem ich sichergestellt hätte, dass Pulse bzw. Pipewire nicht im Spiel sind. Zumindest, wenn ich auf die Nutzung von plain ALSA bestehen würde. Aber wie gesagt: ich mag mich angesichts des Niveaus da auch grad nicht näher mit befassen; vielleicht findet sich ja jemand, den es weniger stört.

o/
Achso. Bin nun wieder entspannter, weil ich es fast hinbekommen habe.

Habe einfach mal viele Argumente aus der Syntax genommen:

Code: Alles auswählen

ffmpeg -i /dev/video0 /media/dashcam/video.avi 
und erhalte dann schon mal ein Video mit 9fps . Eigentlich kann die Cam bei 720 zwar 30 fps aber wie auch immer das dann gehen soll,so gehts ja schonmal.

Frage:
Wo in der Syntax müssten denn nun der Alsa Aufruf mit mono Mic-Channel rein?
ISFT : Lavf59.27.100
Stream #0:0: Video: mpeg4 (FMP4 / 0x34504D46), yuv420p(tv, progressive), 1280x720, q=2-31, 200 kb/s, 10 fps, 10 tbn
Metadata:
encoder : Lavc59.37.100 mpeg4
Side data:
cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: N/A
frame= 68 fps=9.4 q=7.4 size= 256kB time=00:00:08.90 bitrate= 235.6kbits/s speed=1.23x

CBG
Beiträge: 95
Registriert: 16.12.2013 22:53:07

Re: ffmpeg geht nicht - Raspbian 32bit lite

Beitrag von CBG » 10.03.2024 13:27:52

Kleines Edit:

habe nun das hinbekommen.

Ursache des Problems waren die verschiedenen Soundkarten.

Lösung war dann so: (Quelle: https://trac.ffmpeg.org/wiki/Capture/ALSA)

Schritt 1)
arecord -L

Code: Alles auswählen

arecord -L
null
    Discard all samples (playback) or generate zero samples (capture)
default
    Default Audio Device
sysdefault
    Default Audio Device
hw:CARD=C525,DEV=0
    HD Webcam C525, USB Audio
    Direct hardware device without any conversions
plughw:CARD=C525,DEV=0
    HD Webcam C525, USB Audio
    Hardware device with all software conversions
default:CARD=C525
    HD Webcam C525, USB Audio
    Default Audio Device
sysdefault:CARD=C525
    HD Webcam C525, USB Audio
    Default Audio Device
front:CARD=C525,DEV=0
    HD Webcam C525, USB Audio
    Front output / input
dsnoop:CARD=C525,DEV=0
    HD Webcam C525, USB Audio
    Direct sample snooping device
Schritt 2)

Jetzt hab ich das sysdefault als Gerät einfach getestet mit ffmpeg. Das ging dann und daher habe ich das genutzt:

Code: Alles auswählen

ffmpeg -f alsa -i sysdefault:CARD=C525 -f v4l2 -s 1280x720 -i /dev/video0 -preset ultrafast -ar 16000 -y -vf "hflip, vflip, drawtext=fontfile=/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf: text='%{localtime\:%d-%m-%Y-%T}': fontcolor=blue@0.8: x=7:y=700" /media/dashcam/video_$(date +"%d-%m-%Y").avi
Ich habe die Cam bei mir um 180 Grad gedreht. Sprich upside-down geingesetzt. Daher sind bei mir die hflip & vflip Argumente drinnen.

So..
Problem gelöst.

Jetzt noch ausführbares Skript erstellt, dazu eine SystemUnit usw. und schon geths.

Ausserdem noch mit Samba, Hostapd und ISC-DHCP das so gebaut, dass man dann mit dem Handy die Datei runter loaden kann.
Mega geil.

Falls das als ganzes Tutorial hier benötigt wird, gerne Info. Ich stelle das dann rein.

Antworten