brew install gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly ffmpeg
in: sub.vtt
out: sub.srt
ffmpeg -i sub.vtt sub.srt
in: original.mp4
in: sub.srt
out: video.mp4
gst-launch-1.0 -v \
filesrc location=sub.srt ! subparse ! txt. \
filesrc location=original.mp4 ! decodebin ! textoverlay name=txt shaded-background=yes draw-outline=yes ! x264enc ! mp4mux ! filesink location=video.mp4
in: original.mp4
out: audio.aac (codec dependent?)
ffmpeg -i original.mp4 -vn -acodec copy audio.aac
in: video.mp4
in: audio.aac
out: output.mp4
ffmpeg -i video.mp4 -i audio.aac -c:v copy -c:a copy output.mp4