1 votes

Mapping Input with different codecs

Est-il possible d'encoder dans deux codecs différents avec une seule entrée ? J'ai aussi essayé tee muxer sans succès. Merci de votre compréhension.

-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

0voto

Rotem Points 483

Nous pouvons utiliser split filtrer et utiliser -map deux fois.

Si l'entrée comporte à la fois des flux vidéo et audio, nous pouvons utiliser split pour la vidéo et asplit pour l'audio, et nous devons mapper à la fois la vidéo et l'audio.

Nous ne pouvons pas utiliser tee muxer pour l'encodage avec deux codecs différents - tee muxer divise un flux déjà encodé (peut diviser en deux conteneurs/formats différents).


Exemple avec une vidéo synthétique :

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]" divise le flux vidéo d'entrée en deux flux avec des noms temporaires [v0] y [v1] .
  • -map "[v0]" frame%05d.bmp cartes [v0] à frame%05d.bmp sortie ( [v0] codec et format définis par -vcodec bmp -f image2 ).
  • -map "[v1]" test_output.mp4 cartes [v1] à test_output.mp4 sortie ( [v1] codec et format définis par -vcodec libx264 -pix_fmt yuv420p -f mp4 ).

Exemple avec votre commande (non testé) :

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X