
## Command-line arguments
You can pass the input video path and the default output video path as command-line arguments:
```
$ video-trimmer --output trimmed.mp4 input_video.mp4
```
The Flatpak version needs a special `--file-forwarding` flag and `@@` marker to pass the input video through the sandbox:
```
$ flatpak run --file-forwarding org.gnome.gitlab.YaLTeR.VideoTrimmer -o trimmed.mp4 @@ input_video.mp4
```
## Format support
For trimming Video Trimmer uses the `ffmpeg` binary, thus the non-Flatpak version depends on the muxers and demuxers available in your system's `ffmpeg`. The Flatpak package uses the `org.freedesktop.Platform.ffmpeg-full` extension.
The video preview goes through GTK 4 which usually relies on GStreamer, and therefore your system's or Flatpak GNOME Platform's installed GStreamer plugins.
The optional re-encoding also uses `ffmpeg` and thus needs the respective decoders and encoders to work. For `.mp4` output extension Video Trimmer sets the encoder to `libvpx-vp9` for better Flatpak support, for other output extensions it leaves the decision `ffmpeg`.
## Contributing translations
You can help translate Video Trimmer: https://l10n.gnome.org/module/video-trimmer/. Any help is appreciated!
## Building
The easiest way is to clone the repository with GNOME Builder and press the Build button.
Alternatively, you can build it manually:
```
meson -Dprofile=development -Dprefix=$PWD/install build
ninja -C build install
```
gnome-video-trimmer-0.8.2/build-aux/ 0000775 0000000 0000000 00000000000 14510422344 0017300 5 ustar 00root root 0000000 0000000 gnome-video-trimmer-0.8.2/build-aux/cargo.sh 0000775 0000000 0000000 00000001151 14510422344 0020730 0 ustar 00root root 0000000 0000000 #!/bin/sh
export MESON_BUILD_ROOT="$1"
export MESON_SOURCE_ROOT="$2"
export CARGO_TARGET_DIR="$MESON_BUILD_ROOT"/target
export CARGO_HOME="$MESON_BUILD_ROOT"/cargo-home
export OUTPUT="$3"
export APP_ID_SUFFIX="$4"
export APP_BIN="$5"
if [ "$APP_ID_SUFFIX" = ".Devel" ]
then
echo "DEBUG MODE"
cargo build --manifest-path \
"$MESON_SOURCE_ROOT"/Cargo.toml && \
cp "$CARGO_TARGET_DIR"/debug/"$APP_BIN" "$OUTPUT"
else
echo "RELEASE MODE"
cargo build --manifest-path \
"$MESON_SOURCE_ROOT"/Cargo.toml --release && \
cp "$CARGO_TARGET_DIR"/release/"$APP_BIN" "$OUTPUT"
fi
gnome-video-trimmer-0.8.2/build-aux/dist-vendor.sh 0000775 0000000 0000000 00000000355 14510422344 0022100 0 ustar 00root root 0000000 0000000 #!/bin/sh
export DIST="$1"
export SOURCE_ROOT="$2"
cd "$SOURCE_ROOT"
mkdir "$DIST"/.cargo
cargo vendor | sed 's/^directory = ".*"/directory = "vendor"/g' > $DIST/.cargo/config
# Move vendor into dist tarball directory
mv vendor "$DIST"
gnome-video-trimmer-0.8.2/build-aux/org.gnome.gitlab.YaLTeR.VideoTrimmer.Devel.json 0000664 0000000 0000000 00000002623 14510422344 0030074 0 ustar 00root root 0000000 0000000 {
"app-id" : "org.gnome.gitlab.YaLTeR.VideoTrimmer.Devel",
"runtime" : "org.gnome.Platform",
"runtime-version" : "master",
"sdk" : "org.gnome.Sdk",
"sdk-extensions" : [
"org.freedesktop.Sdk.Extension.rust-stable"
],
"add-extensions" : {
"org.freedesktop.Platform.ffmpeg-full" : {
"directory" : "lib/ffmpeg",
"version" : "23.08",
"add-ld-path" : "."
}
},
"cleanup-commands" : [
"mkdir -p ${FLATPAK_DEST}/lib/ffmpeg"
],
"command" : "video-trimmer",
"tags" : [
"nightly"
],
"desktop-file-name-suffix" : " (Devel)",
"finish-args" : [
"--env=RUST_BACKTRACE=1",
"--env=G_MESSAGES_DEBUG=VideoTrimmer",
"--share=ipc",
"--socket=fallback-x11",
"--socket=wayland",
"--socket=pulseaudio",
"--device=dri"
],
"build-options" : {
"append-path" : "/usr/lib/sdk/rust-stable/bin",
"build-args" : [
"--share=network"
]
},
"modules" : [
{
"name" : "video-trimmer",
"buildsystem" : "meson",
"builddir" : true,
"config-opts" : [
"-Dprofile=development"
],
"sources" : [
{
"type" : "dir",
"path" : ".."
}
]
}
]
}
gnome-video-trimmer-0.8.2/data/ 0000775 0000000 0000000 00000000000 14510422344 0016317 5 ustar 00root root 0000000 0000000 gnome-video-trimmer-0.8.2/data/icons/ 0000775 0000000 0000000 00000000000 14510422344 0017432 5 ustar 00root root 0000000 0000000 gnome-video-trimmer-0.8.2/data/icons/broken-playback-symbolic.svg 0000664 0000000 0000000 00000007342 14510422344 0025044 0 ustar 00root root 0000000 0000000
gnome-video-trimmer-0.8.2/data/icons/broken-video-symbolic.svg 0000664 0000000 0000000 00000007153 14510422344 0024364 0 ustar 00root root 0000000 0000000
gnome-video-trimmer-0.8.2/data/icons/hicolor/ 0000775 0000000 0000000 00000000000 14510422344 0021071 5 ustar 00root root 0000000 0000000 gnome-video-trimmer-0.8.2/data/icons/hicolor/scalable/ 0000775 0000000 0000000 00000000000 14510422344 0022637 5 ustar 00root root 0000000 0000000 gnome-video-trimmer-0.8.2/data/icons/hicolor/scalable/apps/ 0000775 0000000 0000000 00000000000 14510422344 0023602 5 ustar 00root root 0000000 0000000 org.gnome.gitlab.YaLTeR.VideoTrimmer.Devel.svg 0000664 0000000 0000000 00000077063 14510422344 0034157 0 ustar 00root root 0000000 0000000 gnome-video-trimmer-0.8.2/data/icons/hicolor/scalable/apps
gnome-video-trimmer-0.8.2/data/icons/hicolor/scalable/apps/org.gnome.gitlab.YaLTeR.VideoTrimmer.svg 0000664 0000000 0000000 00000035611 14510422344 0033171 0 ustar 00root root 0000000 0000000
gnome-video-trimmer-0.8.2/data/icons/hicolor/symbolic/ 0000775 0000000 0000000 00000000000 14510422344 0022712 5 ustar 00root root 0000000 0000000 gnome-video-trimmer-0.8.2/data/icons/hicolor/symbolic/apps/ 0000775 0000000 0000000 00000000000 14510422344 0023655 5 ustar 00root root 0000000 0000000 org.gnome.gitlab.YaLTeR.VideoTrimmer-symbolic.svg 0000664 0000000 0000000 00000004360 14510422344 0035001 0 ustar 00root root 0000000 0000000 gnome-video-trimmer-0.8.2/data/icons/hicolor/symbolic/apps
gnome-video-trimmer-0.8.2/data/icons/meson.build 0000664 0000000 0000000 00000000561 14510422344 0021576 0 ustar 00root root 0000000 0000000 scalable_dir = 'hicolor' / 'scalable' / 'apps'
install_data(
scalable_dir / app_id + '.svg',
install_dir: get_option('datadir') / 'icons' / scalable_dir,
)
symbolic_dir = 'hicolor' / 'symbolic' / 'apps'
install_data(
symbolic_dir / base_id + '-symbolic.svg',
install_dir: get_option('datadir') / 'icons' / symbolic_dir,
rename: app_id + '-symbolic.svg',
)
gnome-video-trimmer-0.8.2/data/icons/org.gnome.gitlab.YaLTeR.VideoTrimmer.Source.svg 0000664 0000000 0000000 00000636736 14510422344 0030277 0 ustar 00root root 0000000 0000000
gnome-video-trimmer-0.8.2/data/meson.build 0000664 0000000 0000000 00000002621 14510422344 0020462 0 ustar 00root root 0000000 0000000 subdir('icons')
data_conf = configuration_data()
data_conf.set('app_id', app_id)
desktop_file = i18n.merge_file(
input: configure_file(
input: base_id + '.desktop.in.in',
output: '@BASENAME@',
configuration: data_conf
),
output: app_id + '.desktop',
type: 'desktop',
po_dir: '../po',
install: true,
install_dir: get_option('datadir') / 'applications'
)
desktop_utils = find_program('desktop-file-validate', required: false)
if desktop_utils.found()
test('Validate desktop file', desktop_utils,
args: [desktop_file]
)
endif
appstream_file = i18n.merge_file(
input: configure_file(
input: base_id + '.metainfo.xml.in.in',
output: '@BASENAME@',
configuration: data_conf
),
output: app_id + '.metainfo.xml',
po_dir: '../po',
install: true,
install_dir: get_option('datadir') / 'metainfo'
)
appstreamcli = find_program('appstreamcli', required: false)
if appstreamcli.found()
test('validate-appdata', appstreamcli,
args: ['validate', '--no-net', '--explain', appstream_file]
)
endif
install_data('org.gnome.gitlab.YaLTeR.VideoTrimmer.gschema.xml',
install_dir: get_option('datadir') / 'glib-2.0' / 'schemas'
)
gnome.compile_schemas()
compile_schemas = find_program('glib-compile-schemas', required: false)
if compile_schemas.found()
test('Validate schema file', compile_schemas,
args: ['--strict', '--dry-run', meson.current_source_dir()]
)
endif
gnome-video-trimmer-0.8.2/data/org.gnome.gitlab.YaLTeR.VideoTrimmer.desktop.in.in 0000664 0000000 0000000 00000001707 14510422344 0027571 0 ustar 00root root 0000000 0000000 [Desktop Entry]
Name=Video Trimmer
Comment=Trim videos quickly
# Translators: search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon!
Keywords=Cut;Movie;Film;Clip;
Exec=video-trimmer %u
Icon=@app_id@
Terminal=false
Type=Application
Categories=GNOME;GTK;Video;AudioVideo;
StartupNotify=true
MimeType=image/gif;video/3gp;video/3gpp;video/3gpp2;video/dv;video/divx;video/fli;video/flv;video/mp2t;video/mp4;video/mp4v-es;video/mpeg;video/mpeg-system;video/msvideo;video/ogg;video/quicktime;video/vivo;video/vnd.divx;video/vnd.mpegurl;video/vnd.rn-realvideo;video/vnd.vivo;video/webm;video/x-anim;video/x-avi;video/x-flc;video/x-fli;video/x-flic;video/x-flv;video/x-m4v;video/x-matroska;video/x-mjpeg;video/x-mpeg;video/x-mpeg2;video/x-ms-asf;video/x-ms-asf-plugin;video/x-ms-asx;video/x-msvideo;video/x-ms-wm;video/x-ms-wmv;video/x-ms-wvx;video/x-nsv;video/x-ogm+ogg;video/x-theora;video/x-theora+ogg;
gnome-video-trimmer-0.8.2/data/org.gnome.gitlab.YaLTeR.VideoTrimmer.gschema.xml 0000664 0000000 0000000 00000000316 14510422344 0027307 0 ustar 00root root 0000000 0000000
Video Trimmer cuts out a fragment of a video given the start and end timestamps. The video is never re-encoded, so the process is very fast and does not reduce the video quality.
This release contains a minor visual refresh for GNOME 45.
This release adds keyboard shortcuts and fixes a rare crash with some files.
This release fixes app closing on inaccessible files and updates it to the GNOME 43 platform.
This release enables "Show in Files" for Flatpak and updates translations.
This release adds an accurate trimming with re-encoding option and refreshes the design a bit.
This release contains a few improvements and adds a number of translations.
This release contains a few small improvements.
Video Trimmer is now a GTK 4 application!
This release fixes an error when trimming GoPro recordings.
This release fixes an issue where not all streams from the input file were copied into the output file.
This release replaces the Done dialog with an in-app notification and adds a command-line argument to specify the output file.
This release fixes file filter not working on Flatpak and possibly a related file chooser crash.
This release fixes crashes related to video preview errors, adds a Ctrl+Q exit shortcut and a Dutch translation.
This release adds a video preview and a timeline where the target region can be adjusted using the mouse.
First release.