1
nodejx 2023-03-21 20:27:48 +08:00
Testing GPT 4:
根据你提供的信息,我认为你需要使用 FFmpeg 的 filter_complex 选项来将两个流合并。以下是一个示例命令,你可以根据需要进行修改: ffmpeg -i rtmp://stream-1 -i rtmp://stream-2 -filter_complex "[0:v]scale=1920x1080,setsar=1[v0];[1:a]aresample=44100[a1];[0:a]aformat=sample_fmts=fltp:sample_rates=44100:channel_layouts=stereo[a0];[v0][a0][a1]concat=n=1:v=1:a=1" -f flv rtmp://stream-3 这个命令将第一个流的视频缩放到 1080p 并设置像素宽高比,将第一个流的音频格式转换为 FLTP ,将第二个流的音频重新采样为 44100Hz ,然后将所有流连接在一起。最后,将输出流编码为 FLV 格式并将其发送到 rtmp://stream-3 。 希望这可以帮助到你! |
2
zbinlin 2023-03-21 21:12:28 +08:00
ffmpeg -i "rtmp://stream-1" -c:v copy -i "rtmp://stream-2" -c:a copy -f flv "rtmp://stream-3"
应该是这样吧? |
3
jaleo OP |
4
orangie 2023-03-21 21:31:59 +08:00 1
从不同文件中合并音轨、视频流信道。下面的命令将第一个输入文件(-map 0:v:0 中的第一个 0 )的视频流(中间的 v )的第一个流(后一个 0 ),以及第二个输入文件的音频流(中间的 a )取出,放到输出文件中。
ffmpeg -i input-1.avi -i input-2.avi -map 0:v:0 -map 1:a:0 output.mp4 如果希望不改变编码方式,仅仅提取和更换视频、音频流,那么可以尝试指定编码方式为 copy ,即直接复制数据,不转换编码,这样会非常快,几乎相当于复制文件的速度。 ffmpeg -i input-1.mp4 -i input-2.mp4 -c copy -map 0:v:0 -map 1:a:0 output.mp4 |
5
chutsetien 2023-03-21 21:36:49 +08:00 1
-c:a copy 和 -c:v copy 可以合为 -c copy, 但如果不能正确识别轨道的话可以人工指定 -map 0:v:0 -map 1:a:0 (既采用第一个输入源的第一个视讯轨和采用第二个输入源的第一个音讯轨).
|
6
kokutou 2023-03-21 21:46:28 +08:00
先试试
ffmpeg -i "rtmp://stream-x" -c copy 1.mp4 能不能出来吧... |
7
imaning 2023-03-21 21:47:23 +08:00 1
ffmpeg -re -i rtmp://127.0.0.1/live/Stream1 -re -i rtmp://127.0.0.1/live/Stream2 -map 0:v:0 -map 1:a:0 -c copy -bsf:a aac_adtstoasc -async 1 -f flv rtmp://127.0.0.1/live/Stream3
测试了下,转成功了的。 |