Eis o que eu sugeriria: Se você conseguir testar a sincronização de saída de sua câmera usando uma janela de visualização raspvid
e achar que a câmera está atrasada, então eu diria que o codificador h264 da câmera é a culpa. Se estiver em sincronia, o FFmpeg está fazendo um número na entrada canalizada.
Se o codificador h264 da câmera é o problema e o atraso de vídeo por trás do áudio é de duração consistente (ou seja, você observa um atraso de 2,5 segundos a cada vez), você pode adicionar um -itsoffset
parâmetro para a entrada de áudio para atrasar essa duração. Por exemplo:
raspivid -o - -t 0 -n -w 1280 -h 720 -fps 25 | \
ffmpeg -report -y \
-f h264 -r 25 -i - \
-itsoffset 2.5 -f alsa -ac 1 -i hw:1 \
-vcodec copy -acodec libmp3lame -ac 1 -ar 44100 -b:a 128k \
-f mpegts udp://44.0.0.95:1234
Se não houver atraso na saída de visualização da câmera , sugiro instalar o driver V4L2 da câmera para que seu comando FFmpeg possa extrair quadros diretamente da câmera.
ffmpeg -report -y \
-f v4l2 -input_format h264 -r 25 -video_size 1280x720 -i /dev/video0 \
-f alsa -ac 1 -i hw:1 \
-vcodec copy -acodec libmp3lame -ac 1 -ar 44100 -b:a 128k \
-f mpegts udp://44.0.0.95:1234
No entanto, pelo que eu recolhi online, as pessoas têm reclamações sobre o desempenho do driver V4L2 desta câmera, então você pode acabar ficando com o diabo que você conhece e usando -itsoffset
na entrada de áudio, independentemente. / p>
Notas de comando: Recortei a opção probesize
do seu comando, pois você está especificando o formato de entrada e a taxa de quadros. Além disso, você não deve especificar -r 25
(o que 'força' a taxa de quadros para o valor especificado) e -framerate 25
(que tentaria usar o framerate de entrada 'nativo'). Deixei -r 25
in porque descobri que funciona melhor para entradas de vídeo ao vivo. As configurações do codificador de MP3 são mais específicas, então o FFmpeg não precisa "adivinhar" sobre elas. -thread_queue_size
params foram aparados para comprimento de linha, para que você possa adicioná-los novamente se for absolutamente necessário.