If you want to use FFmpeg (for example, if you use it regularly and don't want to have countless single-use-applications on your computer), you can use it without re-encoding:
ffmpeg -i input_video.ogv -vn -c:a copy output_audio.ogg
(-vn: no video. -c:a copy: just copy the audio-stream.) Source1
ffmpeg -i input_video.ogv -an -c:v copy output_audio.ogv
(-an: no audio. -c:v copy: just copy the video-stream.) Source1
Or, instad of -vn / -an, you can also specify the streams to copy with -map:
ffmpeg -i input_video.ogv -map 0:0 -c:a copy output_audio.ogg
(Only map first stream (of first input-file) to output) Source2
Note that you can find out the stream number (and its content) via FFmpeg:
ffmpeg -i input_video.ogv -hide_banner
(-hide_banner is not necessary, but the output will be easier on the eye as it doesn't show you the build-infos of FFmpeg.)
+1 for adding an ffmpeg answer, can you confirm it doesnt re-encode? – ZN13 – 2017-06-13T20:52:48.170
2
Source1 states that "copy [...] indicate[s] that the stream is not to be re-encoded." I use FFmpeg regularly with different file-formats and never saw
– flolilo – 2017-06-13T21:35:49.613copyre-encode something - I checked that via CPU- and disk-stats (~ 0% CPU-use and ~ 100% disk-use in comparison to "regular" (re-)encodings) and comparing the outputs directly (eg following http://dericed.com/2012/display-video-difference-with-ffmpegs-overlay-filter/ :ffmpeg -y -i fileA.mov -i fileB.mov -filter_complex '[1:v]format=yuva444p,lut=c3=128,negate[video2withAlpha],[0:v][video2withAlpha]overlay[out]' -map [out] fileA-B.mov)