mirror of
https://github.com/familyfriendlymikey/mpv-cut
synced 2024-07-01 12:08:58 +00:00
readme
This commit is contained in:
parent
6849b272a4
commit
6aa8a9ee02
89
README.md
89
README.md
@ -50,7 +50,7 @@ That's all you have to do, next time you run mpv the script will be automaticall
|
|||||||
|
|
||||||
The resulting cut will be placed in the same directory as the source file.
|
The resulting cut will be placed in the same directory as the source file.
|
||||||
|
|
||||||
- You can press `C` to cancel a cut.
|
You can press `C` to cancel a cut.
|
||||||
|
|
||||||
### Actions
|
### Actions
|
||||||
|
|
||||||
@ -62,11 +62,7 @@ You can press `a` to cycle between three default actions:
|
|||||||
|
|
||||||
- List (simply add the timestamps for the cut to a `.list` file).
|
- List (simply add the timestamps for the cut to a `.list` file).
|
||||||
|
|
||||||
`mpv-cut` uses an extensible list of *actions* that you can modify in your
|
More details in [Custom Actions](#custom-actions).
|
||||||
`config.lua`. This makes it easy to change the `ffmpeg` command (or any command
|
|
||||||
for that matter) to suit your specific situation. It should be possible to
|
|
||||||
create custom actions with limited coding knowledge. More details in
|
|
||||||
[config](#config).
|
|
||||||
|
|
||||||
### Bookmarking
|
### Bookmarking
|
||||||
|
|
||||||
@ -80,7 +76,7 @@ The resulting cuts and bookmark files will be prefixed a channel number. This
|
|||||||
is to help you categorize cuts and bookmarks. You can press `-` to decrement
|
is to help you categorize cuts and bookmarks. You can press `-` to decrement
|
||||||
the channel and `=` to increment the channel.
|
the channel and `=` to increment the channel.
|
||||||
|
|
||||||
You can configure a name for each channel as shown below.
|
You can configure a name for each channel as shown in [config](#config).
|
||||||
|
|
||||||
### Utils
|
### Utils
|
||||||
|
|
||||||
@ -92,7 +88,7 @@ source ~/.config/mpv/scripts/mpv-cut/utils
|
|||||||
```
|
```
|
||||||
|
|
||||||
Now when you open new terminals, you'll have access to the functions inside of
|
Now when you open new terminals, you'll have access to the functions inside of
|
||||||
the `utils` script, which are explained in this section.
|
the `utils` script, which are used as follows:
|
||||||
|
|
||||||
#### Making Cuts
|
#### Making Cuts
|
||||||
|
|
||||||
@ -103,7 +99,7 @@ for an output filename. To make cuts without reencoding:
|
|||||||
make_cuts some_video.mp4.list -c copy
|
make_cuts some_video.mp4.list -c copy
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Concatenate, Merge, Join Cuts
|
#### Concatenate, Merge, Combine, Join Cuts
|
||||||
|
|
||||||
The `concat` function takes a prefix and ffmpeg output options. Any file in the current directory
|
The `concat` function takes a prefix and ffmpeg output options. Any file in the current directory
|
||||||
starting with the prefix will be included. For example, to concatenate all
|
starting with the prefix will be included. For example, to concatenate all
|
||||||
@ -124,6 +120,12 @@ You can include or omit any of the following:
|
|||||||
```lua
|
```lua
|
||||||
-- Key config
|
-- Key config
|
||||||
KEY_CUT = "c"
|
KEY_CUT = "c"
|
||||||
|
KEY_CANCEL_CUT = "C"
|
||||||
|
KEY_CYCLE_ACTION = "a"
|
||||||
|
KEY_BOOKMARK_ADD = "i"
|
||||||
|
KEY_CHANNEL_INC = "="
|
||||||
|
KEY_CHANNEL_DEC = "-"
|
||||||
|
KEY_MAKE_CUTS = "0"
|
||||||
|
|
||||||
-- The list of channel names, you can choose whatever you want.
|
-- The list of channel names, you can choose whatever you want.
|
||||||
CHANNEL_NAMES[1] = "FUNNY"
|
CHANNEL_NAMES[1] = "FUNNY"
|
||||||
@ -205,58 +207,27 @@ Alt+= add video-zoom 0.1
|
|||||||
You may also want to change your key repeat delay and rate by tweaking
|
You may also want to change your key repeat delay and rate by tweaking
|
||||||
`input-ar-delay` and `input-ar-rate` to your liking in `mpv.conf`.
|
`input-ar-delay` and `input-ar-rate` to your liking in `mpv.conf`.
|
||||||
|
|
||||||
### Concatenation, Merging, Combining
|
|
||||||
|
|
||||||
`mpv-cut` doesn't support concatenating clips, it's more reliable to do it with
|
|
||||||
your shell instead. This function I wrote should handle most mpv-cut related
|
|
||||||
situations.
|
|
||||||
|
|
||||||
You can put the function in your `~/.zshrc`:
|
|
||||||
|
|
||||||
```
|
|
||||||
concat() {
|
|
||||||
local prefix="$1"
|
|
||||||
shift
|
|
||||||
ffmpeg -f concat -safe 0 -i <(printf 'file %q\n' "$PWD"/"$prefix"*) "$@"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
`concat` takes a filename prefix and ffmpeg output args. It will concatenate
|
|
||||||
all files in the current directory starting with the supplied prefix. Example:
|
|
||||||
|
|
||||||
```
|
|
||||||
concat COPY output.mp4
|
|
||||||
```
|
|
||||||
|
|
||||||
Another example:
|
|
||||||
|
|
||||||
```
|
|
||||||
concat COPY -crf 10 -preset superfast output.mp4
|
|
||||||
```
|
|
||||||
|
|
||||||
Note that if you're using filenames with a lot of non english characters you
|
|
||||||
might run into trouble, in which case you can see the FAQ section on how to
|
|
||||||
concatenate videos in ffmpeg.
|
|
||||||
|
|
||||||
## FAQ
|
## FAQ
|
||||||
|
|
||||||
### What Is The Point Of A Cut List?
|
### What Is The Point Of A Cut List?
|
||||||
|
|
||||||
There are plenty of reasons, but to give some examples:
|
There are plenty of reasons, but to give some examples:
|
||||||
|
|
||||||
- Video seems to be pretty complex, at least to me. One video file may cause
|
- In my opinion, video is extremely complex and tools around video can be
|
||||||
certain issues, and another may not, which makes writing an ffmpeg command
|
unreliable. One video file may cause certain issues, and another may not,
|
||||||
that accounts for all scenarios difficult. If you spend a ton of time making
|
which makes writing an ffmpeg command that accounts for all scenarios
|
||||||
many cuts in a long movie only to find that the colors look off because of
|
difficult. If you spend a ton of time making many cuts in a long movie only
|
||||||
some 10-bit h265 dolby mega surround whatever the fuck, with a cut list it's
|
to find that the colors look off because of some 10-bit h265 dolby mega
|
||||||
trivial to edit the ffmpeg command and re-make the cuts.
|
surround whatever the fuck, with a cut list it's trivial to edit the ffmpeg
|
||||||
|
command and re-make the cuts.
|
||||||
|
|
||||||
- Maybe you forget that the foreign language video you're cutting has softsubs
|
- Maybe you forget that the foreign language video you're cutting has softsubs
|
||||||
rather than hardsubs, and you make a bunch of encode cuts resulting in cuts
|
rather than hardsubs, and you make a bunch of encode cuts resulting in cuts
|
||||||
that have no subtitles.
|
that have no subtitles.
|
||||||
|
|
||||||
- You delete the source video for storage reasons, but still want to have a
|
- You might move the source video to somewhere else for storage but still want
|
||||||
back up of the cut timestamps in the event you need to remake the cuts.
|
to have a back up of the cut timestamps in the event you need to remake the
|
||||||
|
cuts from source quality.
|
||||||
|
|
||||||
### Why Would I Bookmark Instead Of Cutting?
|
### Why Would I Bookmark Instead Of Cutting?
|
||||||
|
|
||||||
@ -266,15 +237,6 @@ ruin your viewing experience to wait for a funny moment to be over in order to
|
|||||||
make a cut. Instead, you can quickly make a bookmark whenever you laugh, and
|
make a cut. Instead, you can quickly make a bookmark whenever you laugh, and
|
||||||
once you're done watching you can go back and make actual cuts.
|
once you're done watching you can go back and make actual cuts.
|
||||||
|
|
||||||
### Why Is Lossless Cutting Called "Copy"?
|
|
||||||
|
|
||||||
This refers to ffmpeg's `-copy` flag which copies the input stream instead of
|
|
||||||
re-encoding it, meaning that the cut will process extremely quickly and the
|
|
||||||
resulting video will retain 100% of the original quality. The main drawback is
|
|
||||||
that the cut may have some extra video at the beginning and end, and as a
|
|
||||||
result of that there may be some slightly wonky behavior with video players and
|
|
||||||
editors.
|
|
||||||
|
|
||||||
### Why Would I Re-Encode A Video?
|
### Why Would I Re-Encode A Video?
|
||||||
|
|
||||||
- As mentioned above, copying the input stream is very fast and lossless but
|
- As mentioned above, copying the input stream is very fast and lossless but
|
||||||
@ -322,3 +284,12 @@ extremely quickly and play backwards just fine.
|
|||||||
Once you are done generating the cut list, simply open the `cut_list.txt` file,
|
Once you are done generating the cut list, simply open the `cut_list.txt` file,
|
||||||
substitute the proxy file name for the original file name, and run `make_cuts`
|
substitute the proxy file name for the original file name, and run `make_cuts`
|
||||||
on it.
|
on it.
|
||||||
|
|
||||||
|
### Why Is Lossless Cutting Called "Copy"?
|
||||||
|
|
||||||
|
This refers to ffmpeg's `-copy` flag which copies the input stream instead of
|
||||||
|
re-encoding it, meaning that the cut will process extremely quickly and the
|
||||||
|
resulting video will retain 100% of the original quality. The main drawback is
|
||||||
|
that the cut may have some extra video at the beginning and end, and as a
|
||||||
|
result of that there may be some slightly wonky behavior with video players and
|
||||||
|
editors.
|
||||||
|
Loading…
Reference in New Issue
Block a user