forked from alanlivio/cli-helpers
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathffmpeg.bash
More file actions
34 lines (29 loc) · 1.26 KB
/
ffmpeg.bash
File metadata and controls
34 lines (29 loc) · 1.26 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
function ffmpeg_cut_mp4() {
: ${3?"Usage: ${FUNCNAME[0]} <video> <begin_time_in_format_00:00:00> <end_time_in_format_00:00:00>"}
local fname_no_ext="${1%.*}"
local extension=${1##*.}
ffmpeg -i "$1" -vcodec copy -acodec copy -ss "$2" -t $3 -f mp4 "$fname_no_ext (cuted).$extension"
}
function ffmpeg_convert_to_mp4_960x540() {
: ${1?"Usage: ${FUNCNAME[0]} <video>"}
local fname_no_ext="${1%.*}"
ffmpeg -i "$1" -vf "scale=960:540" -c:v libx264 -c:a aac "$fname_no_ext (converted).mp4"
}
function ffmpeg_convert_to_mp4_960x540_cutted_until() {
: ${1?"Usage: ${FUNCNAME[0]} <video> <XX:YY:ZZ>"}
local fname_no_ext="${2%.*}"
ffmpeg -i "$1" -ss 00:00:00 -t "$2" -vf "scale=960:540" -c:v libx264 -c:a aac "$fname_no_ext (converted).mp4"
}
function ffmpeg_extract_audio_mp4() {
: ${1?"Usage: ${FUNCNAME[0]} <video>"}
local fname_no_ext="${1%.*}"
ffmpeg -i "$1" -vn -acodec copy "$fname_no_ext (audio).m4a"
}
function ffmpeg_show_motion_vectors() {
: ${1?"Usage: ${FUNCNAME[0]} <video>"}
ffplay -flags2 +export_mvs -vf codecview=mv=pf+bf+bb "$1"
}
function ffmpeg_mp4_files_merge() {
: ${1?"Usage: ${FUNCNAME[0]} <file1> ... "}
ffmpeg -f concat -safe 0 -i <(for f in "$@"; do echo "file '$PWD/$f'"; done) -c copy merged.mp4
}