我目前正在尝试从单个输入流生成3个输出传输流,为此,我需要对每个输出进行视频编码,因为我希望每个流具有不同的比特率。但是对于音频流,所有3个输出传输流都具有相同的音频比特率和相同的参数。 因此,我想以某种方式仅在第一时间对音频进行转码(在第一流中,假设是从AC3到AAC),然后只想将输出的转码音频从第一输出(aac)复制到其他2个输出。这样可以节省处理能力。
我已经为此设置了总体命令,但是对于音频复制,我无法进行设置,这样我就可以从第一个传输流输出中获取输出音频
请参考以下命令:
ffmpeg -loglevel 40 -analyzeduration 10M -probesize 10M -thread_queue_size 1024 -c:v h264_cuvid -gpu 2 -i“ udp://@239.1.1.111:1234?fifo_size = 1000000&buffer_size = 100000&overrun_nonfatal = 1” -filter_complex“ [ 0:v] split = 3 [cl1] [cl2] [temp1]; [temp1] scale = -1:480 [cl3]“ -map [cl1] -map 0:a:0 -c:v h264_nvenc -gpu 2 -预设hq-严格实验-b:v 4500k -bufsize 5000k -bf 3 -profile:v高级别4-编码器1 -sc_threshold 0-最小4500k-最大4500k -g 15 -acodec libfdk_aac -b:a 192k -ar 48000 -ac 2 -flush_packets 0 -f mpegts -mpegts_flags + resend_headers + pat_pmt_at_frames-元数据service_provider = Test_OP1-元数据service_name = MyService1 -max_muxing_queue_size 1024 -pcr_period 20 -y“ udp://size=1=239.pk&t=11? = 1000&fifo_size = 1000000&burst_bits = 50000“ -map [cl2] -map 0:a:0 -c:v h264_nvenc -gpu 2-预设hq-严格实验-b:v 3500k -bufsize 4000k -bf 3 -profile:v high- 4级-编码器1 -sc_threshold 0-最小3500k-最大3500k -g 15 -acodec cop y -flush_packets 0 -f mpegts -mpegts_flags + resend_headers + pat_pmt_at_frames-元数据service_provider = Test_OP2-元数据service_name = MyService2 -max_muxing_queue_size 1024 -pcr_period 20 -y“ udp://239_1.1_size=fi=1=1&size=fi=1.2&reuse=1.2&use_size=1 1000000&burst_bits = 50000“ -map [cl3] -map 0:a:0 -c:v h264_nvenc -gpu 2-预设hq-严格实验-b:v 2500k -bufsize 3000k -bf 3 -profile:v高级-4-最小2500k-最大2500k -g 15-编码器1 -sc_threshold 0 -acodec复制-flush_packets 0 -f mpegts -mpegts_flags + resend_headers + pat_pmt_at_frames -metadata service_provider = Test_OP3 -metadata service_name = MyService3 -max_muxingd_qued-> 20 //239.1.1.222:3333?pkt_size=1316&reuse=1&buffer_size=1000&fifo_size=1000000&burst_bits=50000“
我想让输出流“ 239.1.1.222:2222”和“ 239.1.1.222:3333”应该从第一个输出流“ 239.1.1.222:1111”复制音频流(AAC),而不是从主输入流“ 239.1.1.111:1234“