Die Feinheiten der Codecs beginnen mit der Festlegung des Formats und der Methodik für die Codierung und Decodierung, einschließlich der API-Spezifikationen, sofern zutreffend. Daraus können Implementierungen sowohl des Codierers als auch des Decodierers erstellt werden. Nicht alle Implementierungen werden gleich erstellt. Zum Beispiel ist der CoreAVC H.264-Decoder Multithreading, während dies bei vielen anderen Implementierungen nicht der Fall ist.
V4L2 wird hauptsächlich zum Erstellen / Erfassen von Video auf Linux-Systemen verwendet, daher ist ein Encoder integriert (oder es wird mit größerer Wahrscheinlichkeit ein externer verwendet). Es wird hauptsächlich für Webcams und Video-Capture- / TV-Karten verwendet. Mehr auf Wikipedia . Apps, die Raw-Streams erstellen, verwenden V4L2, um das Video nach ihrem Geschmack zu kodieren. Die Dekodierung erfolgt durch ein anderes Paket (vielleicht libavcodec).
ALSA enthält Codecs, ist aber selbst der Support-Stack für alle Audio-Vorgänge in Linux. Wo immer Sie auch Ton hören, ist ALSA das, was dies ermöglicht. Ich bin sicher, dass ALSA Komponenten für den Audioeingang (Mic / Line-In) hat, also muss es in irgendeiner Form kodiert werden können, aber ich habe damit nicht gearbeitet.
In Ihrem Beispiel glaube ich nicht, dass V4L2 überhaupt eine Rolle spielt, da Sie einen H.264-Encoder verwenden, der wahrscheinlich eine viel bessere Qualität und Leistung bietet als V4L2. ALSA wird zur Wiedergabe Ihres Videos verwendet, aber nicht zum Kodieren.
Wenn Sie einen Sound abspielen, ist ALSA am Werk. Wenn Sie Ihre Webcam verwenden, ist L4V2 am Werk.