如何使用 ffmpeg 检测流是否有视频、音频或两者兼有?

如何使用 ffmpeg 检测流是否有视频、音频或两者兼有?

我正在收听 rtsp 流。该流可能可能只有音频、只有视频或两者都有,具体取决于远程端的ffmpeg配置方式。我想将流转储到 hls。这是代码:

r ffmpeg \
        -hide_banner \
        -nostats \
        -i "rtsps://....." \
        -c:v copy \
        -c:a copy \
        -hls_init_time 2 \
        -hls_time 2 \
        -hls_list_size 100 \
        -strftime 1 \
        -hls_allow_cache 1 \
        -hls_segment_type fmp4 \
        -hls_segment_filename "$MTX_PATH-%Y%m%d%H%M%S.mp4" \
        -hls_flags 'append_list+discont_start+delete_segments+omit_endlist' \
        "$MTX_PATH.m3u8"

然而,由于-c:v copy -v:a copy如果流才不是有视频,或者音频,ffmpeg 将会失败。

我怎样才能告诉 ffmpeg 复制视频如果输入有视频,并复制音频如果输入有音频,并复制视频和音频如果输入有视频和音频吗?

相关内容