使用不同的编解码器映射输入

使用不同的编解码器映射输入

是否可以使用一个输入编码为两个不同的编解码器?我也尝试过 tee muxer,但没有成功。谢谢。

-y -timeout 10000000 -rtsp_transport tcp -i rtsp://rtsp.stream/pattern -map 0:v -vf "transpose=1" -c:v bmp -f image2pipe - -c:v libx264 -preset veryfast -tune zerolatency -an -f flv rtmp://127.0.0.1/live

答案1

我们可能会使用split过滤器并使用-map两次。

如果输入同时具有视频和音频流,我们可能会使用split视频和asplit音频,并且我们必须映射视频和音频。

我们不能使用tee多路复用器对两个不同的编解码器进行编码 -tee多路复用器会分割已经编码的流(可能分割为两个不同的容器/格式)。


合成视频示例:

ffmpeg -f lavfi -i testsrc=size=192x108:rate=1:duration=10 -filter_complex "split[v0][v1]" -vcodec bmp -f image2 -map "[v0]" frame%05d.bmp -vcodec libx264 -pix_fmt yuv420p -f mp4 -map "[v1]" test_output.mp4

  • -filter_complex "split[v0][v1]"将输入视频流分成两个具有临时名称[v0]和的流[v1]
  • -map "[v0]" frame%05d.bmp映射[v0]frame%05d.bmp输出([v0]编解码器和格式由定义-vcodec bmp -f image2)。
  • -map "[v1]" test_output.mp4映射[v1]test_output.mp4输出([v1]编解码器和格式由定义-vcodec libx264 -pix_fmt yuv420p -f mp4)。

使用您的命令的示例(未经测试):

ffmpeg -y -an -timeout 10000000 -rtsp_transport tcp -i rtsp://rtsp.stream/pattern -filter_complex "transpose=1,split[v0][v1]" -c:v bmp -f image2pipe -map "[v0]" - -c:v libx264 -preset veryfast -tune zerolatency -f flv -map "[v1]" rtmp://127.0.0.1/live

相关内容