Both sides previous revisionPrevious revision | |
ffmpeg:only_keep_english [2023/10/30 16:51] – peter | ffmpeg:only_keep_english [2023/10/30 17:13] (current) – [ffmpeg - Only keep English] peter |
---|
| |
<code bash> | <code bash> |
| ffmpeg -i "input.mkv" -c copy -map 0:v -map 0:a:m:language:eng? -map 0:s:m:language:eng? -map 0:d? -map 0:t? "output.mkv" |
ffmpeg -i "input.mkv" -map 0:v -map 0:a:m:language:eng? -c copy -c:s copy -map 0:s:m:language:eng? -map 0:d? -map 0:t? "output.mkv" | ffmpeg -i "input.mkv" -map 0:v -map 0:a:m:language:eng? -c copy -c:s copy -map 0:s:m:language:eng? -map 0:d? -map 0:t? "output.mkv" |
| |
or | or |
| |
fmpeg -i "input.mkv" -map 0:0 -map 0:a:m:language:eng? -c copy -c:s copy -map 0:s:m:language:eng? -map 0:d? -map 0:t? "output.mkv" | ffmpeg -i "input.mkv" -map 0:0 -map 0:a:m:language:eng? -c copy -c:s copy -map 0:s:m:language:eng? -map 0:d? -map 0:t? "output.mkv" |
| ffmpeg -i "input.mkv" -c copy -map 0:v -map 0:a:m:language:eng? -c:s copy -map 0:s:m:language:eng? -map 0:d? -map 0:t? "output.mkv" |
</code> | </code> |
| |
**NOTE:** | **NOTE:** |
| |
| * **-c:s copy**: Using stream copy to remux (no encoding). |
* **-map 0:v**: Keep the existing Video. | * **-map 0:v**: Keep the existing Video. |
* **-map 0:0**: Keep the existing map 0:0. (Assume this is the Video). | * **-map 0:0**: Keep the existing map 0:0. (Assume this is the Video). |
* **-map 0:a:m:language:eng? -c copy**: Keep only English Audio. (Optional only if Audio exists). | * **-map 0:a:m:language:eng?**: Keep only English Audio. (Optional only if Audio exists). |
* **-c:s copy -map 0:s:m:language:eng?**: Keep only English Subtitles. (Optional only if Subtitles exist). | * **-map 0:s:m:language:eng?**: Keep only English Subtitles. (Optional only if Subtitles exist). |
* **-map 0:d?**: Keep Data. (Optional only if Data exists). | * **-map 0:d?**: Keep Data. (Optional only if Data exists). |
* **-map 0:t?**: Keep Attachments. (Optional only if Attachments exists). | * **-map 0:t?**: Keep Attachments. (Optional only if Attachments exists). |
| |
<code bash> | <code bash> |
| |
| # QUICK. |
| ffmpeg -i "input.mkv" -c copy -map 0:v -map 0:a:m:language:eng? -c:s copy -map 0:s:m:language:eng? -map 0:d? -map 0:t? "out1.mkv" |
| |
| # SLOW, BUT SLIGHTLY SMALLER. |
ffmpeg -i "input.mkv" -c:v copy -map 0:v -map 0:a:m:language:eng? -c:s copy -map 0:s:m:language:eng? -map 0:d? -map 0:t? "output.mkv" | ffmpeg -i "input.mkv" -c:v copy -map 0:v -map 0:a:m:language:eng? -c:s copy -map 0:s:m:language:eng? -map 0:d? -map 0:t? "output.mkv" |
| |
| # VERY SLOW, BUT SMALLER. |
| ffmpeg -i "input.mkv" -map 0:v -c:a copy -map 0:a:m:language:eng? -c:s copy -map 0:s:m:language:eng? -map 0:d? -map 0:t? "output.mkv" |
| |
# VERY SLOW, BUT SMALLER | # EXTREMELY SLOW, BUT SMALLEST. |
| ffmpeg -i "input.mkv" -map 0:v -map 0:a:m:language:eng? -c:s copy -map 0:s:m:language:eng? -map 0:d? -map 0:t? "output.mkv" |
ffmpeg -i "input.mkv" -map 0:v -map 0:a:m:language:eng? -map 0:s:m:language:eng? -map 0:d? -map 0:t? "output.mkv" | ffmpeg -i "input.mkv" -map 0:v -map 0:a:m:language:eng? -map 0:s:m:language:eng? -map 0:d? -map 0:t? "output.mkv" |
| |