ffmpeg ao vivo suave streaming estéreo para 2 canais mono

1

Estou tentando fazer streaming de fluxo contínuo ao vivo usando o ffmpeg, que posso gerenciar muito bem. No entanto, o áudio de entrada é um único canal estéreo, que eu preciso dividir para separar os feeds de áudio, como eles estão em diferentes idiomas.

Eu pesquisei por alguns dias tentando todos os tipos de combinações, mas não consigo encontrar uma que funcione.

Meu comando básico de streaming é:

ffmpeg -f dshow -video_size 720x576 -rtbufsize 702000k -framerate 25 -i video="Decklink Video Capture":audio="Decklink Audio Capture" -threads 4 -movflags isml+frag_keyframe -f ismv -map 0:v -b:v:0 1300k -s:v:0 720x576 -map 0:v -b:v:1 900k -s:v:1 640x480 -map 0:v -b:v:2 500k -s:v:2 480x360 -map 0:a:0 -map 0:a:0 http://192.168.1.1/live/channel1/channel1.isml/Streams(video)

Então o -map 0: a: 0 -map 0: a: 0 me dá 2 canais de áudio idêntico, ambos com os dois idiomas em cada, eu tentei a opção pan, que é uma das únicas que funciona, mas não me dá áudio:

ffmpeg -f dshow -video_size 720x576 -rtbufsize 702000k -framerate 25 -i video="Decklink Video Capture":audio="Decklink Audio Capture" -filter_complex "[0:1]pan=1:c0=c0[left]; [0:1]pan=1:c0=c1[right]" -threads 4 -movflags isml+frag_keyframe -f ismv -map 0:v -b:v:0 1300k -s:v:0 720x576 -map 0:v -b:v:1 900k -s:v:1 640x480 -map 0:v -b:v:2 500k -s:v:2 480x360 -map "[left]" -map "[right]" http://192.168.101.10:82/live/channel1/channel1.isml/Streams(video)

Recebo avisos ao usar a opção pan, mas nada que eu possa ver impede o streaming de áudio:

[Parsed_pan_0 @ 0000000002772ee0] This syntax is deprecated. Use '|' to separate the list items.
Single channel layout '1' is interpreted as a number of channels, switch to the syntax '1c' otherwise it will be interpreted as a channel layout number in a later version

Eu atualizei meu comando para usar o | separador, sem efeito adicional.

Isso está usando o ffmpeg do Zeranoe para Windows 64bit, versão N-60386-g9c978f2 Vídeo e Áudio são fornecidos por uma placa de captura Decklink SDI, o áudio está no Canal 1 do Grupo 1.

Qualquer ajuda é muito apreciada, pois acho que estou dando voltas!

    
por Sean 10.02.2014 / 10:33

1 resposta

1

Resolveu isso separando os comandos de áudio -map Parece que o ffmpeg não pode manipular mais de um comando -map para áudio para isml

ffmpeg -f dshow -video_size 720x576 -rtbufsize 702000k -framerate 25 -i video="Decklink Video Capture":audio="Decklink Audio Capture" -threads 4 -filter_complex "[0:1]pan=1:c0=c0[left]" -movflags isml+frag_keyframe -f ismv -map 0:v -b:v:0 1300k -s:v:0 720x576 -map 0:v -b:v:1 900k -s:v:1 640x480 -map 0:v -b:v:2 500k -s:v:2 480x360 -map "[left]" http://192.168.101.10:82/live/channel1/channel1.isml/Streams(video) -threads 4 -filter_complex "[0:1]pan=1:c0=c1[right]" -movflags isml+frag_keyframe -f ismv -map 0:v -b:v:0 1300k -s:v:0 720x576 -map 0:v -b:v:1 900k -s:v:1 640x480 -map 0:v -b:v:2 500k -s:v:2 480x360 -map "[right]" http://192.168.101.10:82/live/channel1/channel1.isml/Streams(video)
    
por 06.03.2014 / 15:28

Tags