-
Apenas um detalhe detalhado, a maioria dos codecs começa como especificações que definem o formato e a metodologia pela qual a codificação e a decodificação ocorrem, incluindo as especificações da API, se aplicável. A partir daí, implementações do codificador e do decodificador podem ser criadas. Nem todas as implementações são criadas iguais. Por exemplo, o decodificador CoreAVC H.264 é multithread, enquanto muitas outras implementações não são.
-
O V4L2 é usado principalmente para criar / capturar vídeo em sistemas Linux, então ele possui um codificador embutido (ou mais provavelmente ele faz referência a um externo). É amplamente usado para webcams e placas de captura de vídeo / TV. Veja mais na Wikipedia . Os aplicativos que criam fluxos brutos usam o V4L2 para codificar o vídeo ao seu gosto. A decodificação é feita por um pacote diferente (talvez libavcodec).
-
ALSA contém codecs, mas é a pilha de suporte para todas as operações de áudio no Linux, então onde quer que você ouvir som, ALSA é o que está fazendo isso acontecer. Tenho certeza de que o ALSA tem componentes para entrada de áudio (mic / line-in), por isso deve ser capaz de alguma forma de codificação, mas eu não trabalhei com isso.
No seu exemplo, eu não acredito que o V4L2 estaria envolvido, já que você está usando um codificador H.264, que provavelmente fornece melhor qualidade e desempenho do que o V4L2. O ALSA será usado para reproduzir seu vídeo, mas não será usado na codificação.
Quando você toca qualquer som, isso é o ALSA no trabalho. Quando você usa sua webcam, isso é L4V2 no trabalho.