User:Soloturn/video
have a video with one language track, and add another language, contained in a different video. first make the two videos same length with an editor like avidemux. then extract the audio of one of the videos. then add the extracted audio to the other video:
fmpeg -i orig-deu.mkv -vn -acodec copy audio-deu.mkv ffmpeg -i orig.mkv -i audio-deu.mkv -map 0 -map 1 -c copy result.mkv
extract audio only, video only, and create video with two language tracks:
ffmpeg -i orig.mp4 -vn -acodec copy fra.aac ffmpeg -i orig.mp4 -c copy -an video.mp4 ffmpeg -i video.mp4 -i deu.aac -i fra.aac -map 0 -map 1 -map 2 -metadata:s:a:0 language=deu -metadata:s:a:1 language=fra -codec copy result.mp4
pause and resume does not work, so split in 5 minutes pieces, process, rejoin, see here. when extracting audio tracks do so into a container like m4a to not loose timestamp gaps.
ffmpeg -i orig.mp4 -c copy -flags +global_header -segment_time 300 -f segment part%03d.mp4 for name in part*; do nice -n 20 ffmpeg -i "$name" -c:v libx264 -c:a ac3 "${name%.*}.mp4"; done done
ffmpeg -i orig.mp4 -vn -acodec copy aud_only.m4a
ffmpeg -i orig.mp4 -vn -map 0:a:0 -c copy a1.wav -map 0:a:1 -c copy a2.wav -map 0:a:2 -c copy a3.wav -map 0:a:3 -c copy a4.wav -map 0:a:4 -c copy a5.wav -map 0:a:5 -c copy a6.wav -map 0:a:6 -c copy a7.wav
convert
from some video codec into h264, or av1, copy all audio and subtitle, use default crf 23:
ffmpeg -i in.mkv -map 0:a\? -map 0:s\? -map 0:v -c:v h264 -c:a copy -c:s copy out.mkv
reduce quality to fixed bitrate. calculate e.g. with (200 MiB * 8192 [converts MiB to kBit]) / 600 seconds = ~2730 kBit/s total bitrate - 128 kBit/s (desired audio bitrate) = 2602 kBit/s video bitrate
ffmpeg -y -i in.mkv -c:v libx264 -b:v 2600k -pass 1 -an -f null /dev/null && \ ffmpeg -i in.mkv -map 0:a\? -map 0:s\? -map 0:v -c:v libx264 -b:v 2600k -pass 2 -c:a copy -c:s copy out.mkv