【问题标题】:ffmpeg change the order of the outputffmpeg 改变输出的顺序
【发布时间】:2020-10-03 12:35:04
【问题描述】:

我尝试更改 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个视频输入执行这个命令时,输出很好,视频是第一个,第三方App可以查看它)

我花了很多时间在上面,请帮助我。

tnx 很多 ...

【问题讨论】:

    标签: linux audio video ffmpeg streaming


    【解决方案1】:

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

    使用

    /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
    

    【讨论】:

    • 稍微微调一下,输入按以下顺序映射:第一个输入 = 0,第二个输入 = 1,第三个输入 = 2 等等...所以我更改了您的命令,-map 0:v 到 -map 2:v 因为我的视频输入是第三个.....-map '[a]' 其余的都保持原样
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-02
    • 2015-06-09
    • 2013-07-13
    相关资源
    最近更新 更多