Linux ffmpeg更改输出的顺序

Linux ffmpeg更改输出的顺序,linux,audio,video,ffmpeg,streaming,Linux,Audio,Video,Ffmpeg,Streaming,我尝试更改3个输入(2个音频+1个视频)的输出顺序 这是我的命令: /usr/bin/ffmpeg -async 1 \ -f pulse -i alsa_output.pci-0000_00_1b.0.analog-stereo.monitor \ -f pulse -i alsa_input.pci-0000_00_1b.0.analog-stereo \ -f x11grab -video_size 1920x1080 -framerate 8 -i :0.0 \ -filter_comp

我尝试更改3个输入(2个音频+1个视频)的输出顺序 这是我的命令:

/usr/bin/ffmpeg -async 1 \
-f pulse -i alsa_output.pci-0000_00_1b.0.analog-stereo.monitor \
-f pulse -i alsa_input.pci-0000_00_1b.0.analog-stereo \
-f x11grab -video_size 1920x1080 -framerate 8 -i :0.0 \
-filter_complex amix=inputs=2 \
-c:a aac -b:a 128k \
-c:v h264_nvenc -b:v 1500k -maxrate 1500k -minrate 1500k \
-override_ffserver -g 16 http://10.100.102.109:8090/feed1.ffm
此命令有效,但第一个输出是音频,因此我的第三个应用程序无法查看此输出 这是我的输出:

Stream mapping:
  Stream #0:0 (pcm_s16le) -> amix:input0 (graph 0)
  Stream #1:0 (pcm_s16le) -> amix:input1 (graph 0)
  amix (graph 0) -> Stream #0:0 (aac)
  Stream #2:0 -> #0:1 (rawvideo (native) -> h264 (h264_nvenc))
Press [q] to stop, [?] for help
-async is forwarded to lavfi similarly to -af aresample=async=1:min_hard_comp=0.100000:first_pts=0.
    Last message repeated 1 times
Output #0, ffm, to 'http://10.100.102.109:8090/feed1.ffm':
  Metadata:
    creation_time   : now
    encoder         : Lavf57.83.100
    Stream #0:0: Audio: aac (LC), 48000 Hz, stereo, fltp, 128 kb/s (default)
    Metadata:
      encoder         : Lavc57.107.100 aac
    Stream #0:1: Video: h264 (h264_nvenc) (Main), bgr0, 1920x1080, q=-1--1, 1500 kb/s, 8 fps, 1000k tbn, 8 tbc
    Metadata:
      encoder         : Lavc57.107.100 h264_nvenc
    Side data:
      cpb: bitrate max/min/avg: 1500000/0/1500000 buffer size: 3000000 vbv_delay: -1
****如何替换视频将首先显示的输出****

(当我使用1个音频和1个视频输入执行此命令时,输出良好,视频是第一个,第三方应用程序可以查看)

我花了很多时间在这上面请帮帮我


tnx很多…

在没有映射的情况下,来自复杂filtergraphs的输出流将在其他流之前排序。因此,将标签添加到filter_complex输出中,并按所需顺序映射

使用


在没有映射的情况下,来自复杂filtergraph的输出流将在其他流之前排序。因此,将标签添加到filter_complex输出中,并按所需顺序映射

使用


只要稍微微调一下,输入就按如下顺序映射:第一个输入=0,第二个输入=1,第三个输入=2等等。。。因此,我在您的命令中更改了-map0:v到-map2:v,因为我的视频输入是第三个…-map'[a]',其余的都保持不变,只是稍微微调一下,输入按以下顺序映射:第一个输入=0,第二个输入=1,第三个输入=2等等。。。因此,我在您的命令中更改了-map 0:v到-map 2:v,因为我的视频输入是第三个…-map“[a]”,其余的都保持原样
/usr/bin/ffmpeg -async 1 \
-f pulse -i alsa_output.pci-0000_00_1b.0.analog-stereo.monitor \
-f pulse -i alsa_input.pci-0000_00_1b.0.analog-stereo \
-f x11grab -video_size 1920x1080 -framerate 8 -i :0.0 \
-filter_complex "amix=inputs=2[a]" \
-map 2:v -map '[a]' \
-c:a aac -b:a 128k \
-c:v h264_nvenc -b:v 1500k -maxrate 1500k -minrate 1500k \
-override_ffserver -g 16 http://10.100.102.109:8090/feed1.ffm