summaryrefslogtreecommitdiff
path: root/bin/ffmpeg-embed-cmd
blob: 6950003e9f82bd86829ad66ec851627f6a839816 (plain)
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
#!/usr/bin/env python3

import os
import shlex
import subprocess
import sys

if __name__ == '__main__':
    ffmpeg_cli = ['ffmpeg'] + sys.argv[1:]

    if len(ffmpeg_cli) > 1:
        ffmpeg_ver = subprocess.run(['ffmpeg', '-version'], capture_output=True, text=True)
        ffmpeg_ver = ffmpeg_ver.stdout.splitlines()[0]
        ffmpeg_str = ' '.join(shlex.quote(arg) for arg in ffmpeg_cli)
        ffmpeg_cli[-1:-1] = [
            '-metadata', f'FFMPEG_VER={ffmpeg_ver}',
            '-metadata', f'FFMPEG_CMD={ffmpeg_str}',
        ]

    out_path = ffmpeg_cli[-1]
    out_dir = os.path.dirname(out_path)
    if out_dir:
        os.makedirs(out_dir, exist_ok=True)

    result = subprocess.run(ffmpeg_cli)
    sys.exit(result.returncode)