27 lines
1.2 KiB
Markdown
27 lines
1.2 KiB
Markdown
# Goal of the script
|
|
|
|
Remove ads from TV recordings with optimal cuts with single video frame precision.
|
|
|
|
When I record a movie on TV, I sometimes wish to archive the movie on my NAS.
|
|
In that case, I want to remove (at least) the beginning and the end of the recording
|
|
if the movie was broadcast on a advertisment free channel, or even worse I may
|
|
have to split it in numerous parts so as to remove the advertisments.
|
|
And I do not want to reencode the entire movie since it's a really slow process (on my NAS)
|
|
and the movie is already broadcast using H264 (DVB-T).
|
|
|
|
Doing this by hand is really painful, because most tools like ffmpeg, or mkvmerge are only
|
|
able to cut a movie (without reencoding) at a boundary within the video stream that corresponds
|
|
to a reference frame (so called I-frames). These frames are only present roughly every 10-20 frames
|
|
which corresponds to quite long duration (in the order of a second).
|
|
|
|
I really want to cut the movie with a better precision. So I have written a Python script
|
|
that leverages _ffmpeg_, _ffprobe_ and _mkvmerge_ to do the job with the required precision.
|
|
|
|
# Parameters
|
|
|
|
# How does it work ?
|
|
|
|
# How to determine where to cuts
|
|
|
|
Use `mpv --osd-fractions --osd-level=3 ./movie.ts`
|