15 Commits

Author SHA1 Message Date
597e9f75cf Merge pull request 'Версия 1.0.0' (#11) from develop into main
Reviewed-on: #11
2025-06-14 22:56:20 +05:00
26827d5ccd Window title updated to "GUI for FFmpeg". 2025-06-14 22:46:00 +05:00
b56199fe8b Simplified fyne-cross build commands in Makefile by removing redundant flags. Adjusted Windows binary naming during packaging. 2025-06-14 21:55:52 +05:00
f6958ffa97 Standardized application name in .desktop file (Name field updated to "GUI for FFmpeg"). 2025-06-14 21:55:30 +05:00
7f410ef700 Simplified README build instructions by removing redundant --icon and --name flags from fyne-cross commands. 2025-06-14 21:54:50 +05:00
c4d205a79e Updated FyneApp.toml with new Website, updated Icon path, bumped version to 1.0.0, added Linux/BSD-specific fields (GenericName, Categories, Comment, Keywords). 2025-06-14 19:52:29 +05:00
c45c106f2f Updated README for link fixes, new Makefile build instructions, and adjusted folder structure documentation. Deleted obsolete folder structure screenshot. 2025-06-14 19:34:47 +05:00
63c13de181 Add Makefile to automate build process for Linux and Windows 2025-06-14 19:32:29 +05:00
57767de4b3 Added files that will be copied during the build of the application for Linux. 2025-06-14 19:32:05 +05:00
c59c87d109 Duplicated: icon.png and screenshot-gui-for-ffmpeg.png in assets, so that I could later delete them from their current locations after the links to the images have changed everywhere. 2025-06-14 19:30:14 +05:00
24446559b4 Merge pull request 'Версия 0.9.0' (#10) from develop into main
Reviewed-on: #10
2025-05-25 23:13:25 +05:00
a053ffbed6 Merge pull request 'Версия 0.8.0' (#9) from develop into main
Reviewed-on: #9
2025-05-11 19:45:39 +05:00
40848a70a5 Merge pull request 'Версия 0.7.0' (#8) from develop into main
Reviewed-on: #8
2024-04-28 14:57:07 +05:00
f17104595d Merge pull request 'Версия 0.6.0' (#7) from develop into main
Reviewed-on: #7
2024-03-17 20:52:37 +05:00
24d80779ee Merge pull request 'Версия 0.5.0' (#6) from develop into main
Reviewed-on: #6
2024-03-08 00:59:41 +05:00
11 changed files with 180 additions and 14 deletions

View File

@@ -1,6 +1,14 @@
Website = "https://gui-for-ffmpeg.projects.kor-elf.net/language/en"
[Details] [Details]
Icon = "icon.png" Icon = "assets/icon.png"
Name = "GUI for FFmpeg" Name = "GUI for FFmpeg"
ID = "net.kor-elf.projects.gui-for-ffmpeg" ID = "net.kor-elf.projects.gui-for-ffmpeg"
Version = "0.9.0" Version = "1.0.0"
Build = 11 Build = 75
[LinuxAndBSD]
GenericName = "GUI for FFmpeg"
Categories = ["AudioVideo", "Utility"]
Comment = "A simple interface for the FFmpeg console utility."
Keywords = ["ffmpeg", "media", "convert", "transcode", "audio", "video", "конвертер", "видео", "аудио", "кодек"]

88
Makefile Normal file
View File

@@ -0,0 +1,88 @@
VERSION ?= $(shell grep '^ *Version *= *' FyneApp.toml | sed -E "s/.*=[[:space:]]*\"([0-9\.]+)\".*/\1/")
BUILD_TMP := fyne-cross/tmp
WINDOWS_AMD64 := gui-for-ffmpeg-$(VERSION)-windows-amd64
BUILD_TMP_WINDOWS_AMD64 := $(BUILD_TMP)/$(WINDOWS_AMD64)
LINUX_AMD64 := gui-for-ffmpeg-$(VERSION)-linux-amd64
BUILD_TMP_LINUX_AMD64 := $(BUILD_TMP)/$(LINUX_AMD64)
RELEASES := fyne-cross/releases/$(VERSION)
default:
# Run "make build-for-linux_amd64"
# Run "make build-for-windows_amd64"
# Build for all
# Run "make build"
build:
make build-for-linux_amd64
make build-for-windows_amd64
# $(RELEASES)/$(LINUX_AMD64).tar.gz
# $(RELEASES)/$(LINUX_AMD64).tar.gz.sha256
# $(RELEASES)/$(WINDOWS_AMD64).zip
# $(RELEASES)/$(WINDOWS_AMD64).zip.sha256
build-for-windows_amd64:
fyne-cross windows
@if [ -d $(BUILD_TMP_WINDOWS_AMD64) ]; then \
rm -rf $(BUILD_TMP_WINDOWS_AMD64)/*; \
else \
mkdir -p $(BUILD_TMP_WINDOWS_AMD64); \
fi
cp LICENSE $(BUILD_TMP_WINDOWS_AMD64)/LICENSE
cp LICENSE-3RD-PARTY.txt $(BUILD_TMP_WINDOWS_AMD64)/LICENSE-3RD-PARTY.txt
cp "fyne-cross/bin/windows-amd64/GUI for FFmpeg.exe" $(BUILD_TMP_WINDOWS_AMD64)/gui-for-ffmpeg.exe
cd $(BUILD_TMP) && 7z a -tzip $(WINDOWS_AMD64).zip $(WINDOWS_AMD64)
@if [ ! -d $(RELEASES) ]; then \
mkdir -p $(RELEASES); \
fi
@if [ -f $(RELEASES)/$(WINDOWS_AMD64).zip ]; then \
rm $(RELEASES)/$(WINDOWS_AMD64).zip; \
fi
@if [ -f $(RELEASES)/$(WINDOWS_AMD64).zip.sha256 ]; then \
rm $(RELEASES)/$(WINDOWS_AMD64).zip.sha256; \
fi
mv $(BUILD_TMP)/$(WINDOWS_AMD64).zip $(RELEASES)/$(WINDOWS_AMD64).zip
cd $(RELEASES) && sha256sum $(WINDOWS_AMD64).zip > $(WINDOWS_AMD64).zip.sha256
# $(RELEASES)/$(WINDOWS_AMD64).zip
# $(RELEASES)/$(WINDOWS_AMD64).zip.sha256
build-for-linux_amd64:
fyne-cross linux
@if [ -d $(BUILD_TMP_LINUX_AMD64) ]; then \
rm -rf $(BUILD_TMP_LINUX_AMD64)/*; \
else \
mkdir -p $(BUILD_TMP_LINUX_AMD64); \
fi
cp -r dist/linux/* $(BUILD_TMP_LINUX_AMD64)/
cp LICENSE $(BUILD_TMP_LINUX_AMD64)/LICENSE
cp LICENSE-3RD-PARTY.txt $(BUILD_TMP_LINUX_AMD64)/LICENSE-3RD-PARTY.txt
cp fyne-cross/bin/linux-amd64/gui-for-ffmpeg $(BUILD_TMP_LINUX_AMD64)/usr/local/bin/gui-for-ffmpeg
cp assets/icon.png $(BUILD_TMP_LINUX_AMD64)/usr/local/share/pixmaps/gui-for-ffmpeg.png
cd $(BUILD_TMP) && tar -czvf $(LINUX_AMD64).tar.gz $(LINUX_AMD64)
@if [ ! -d $(RELEASES) ]; then \
mkdir -p $(RELEASES); \
fi
@if [ -f $(RELEASES)/$(LINUX_AMD64).tar.gz ]; then \
rm $(RELEASES)/$(LINUX_AMD64).tar.gz; \
fi
@if [ -f $(RELEASES)/$(LINUX_AMD64).tar.gz.sha256 ]; then \
rm $(RELEASES)/$(LINUX_AMD64).tar.gz.sha256; \
fi
mv $(BUILD_TMP)/$(LINUX_AMD64).tar.gz $(RELEASES)/$(LINUX_AMD64).tar.gz
cd $(RELEASES) && sha256sum $(LINUX_AMD64).tar.gz > $(LINUX_AMD64).tar.gz.sha256
# $(RELEASES)/$(LINUX_AMD64).tar.gz
# $(RELEASES)/$(LINUX_AMD64).tar.gz.sha256

View File

@@ -1,11 +1,11 @@
# GUI for FFmpeg # GUI for FFmpeg
<p>Простенький интерфейс для консольной утилиты FFmpeg. Но я <strong>не являюсь</strong> автором самой утилиты <strong>FFmpeg</strong>.</p> <p>Простенький интерфейс для консольной утилиты FFmpeg. Но я <strong>не являюсь</strong> автором самой утилиты <strong>FFmpeg</strong>.</p>
<p><strong>FFmpeg</strong> — торговая марка <strong><a href="http://bellard.org/" target="_blank">Fabrice Bellard</a></strong>, создателя проекта <strong><a href="https://ffmpeg.org/about.html" target="_blank">FFmpeg</a></strong>.</p> <p><strong>FFmpeg</strong> — торговая марка <strong><a href="https://bellard.org/" target="_blank">Fabrice Bellard</a></strong>, создателя проекта <strong><a href="https://ffmpeg.org/about.html" target="_blank">FFmpeg</a></strong>.</p>
<p>Программное обеспечение является MIT (см. <a href="https://git.kor-elf.net/kor-elf/gui-for-ffmpeg/src/branch/main/LICENSE">LICENSE</a>) и использует сторонние библиотеки, которые распространяются на их собственных условиях (см. <a href="https://git.kor-elf.net/kor-elf/gui-for-ffmpeg/src/branch/main/LICENSE-3RD-PARTY.txt">LICENSE-3RD-PARTY.txt</a>).</p> <p>Программное обеспечение является MIT (см. <a href="https://git.kor-elf.net/kor-elf/gui-for-ffmpeg/src/branch/main/LICENSE">LICENSE</a>) и использует сторонние библиотеки, которые распространяются на их собственных условиях (см. <a href="https://git.kor-elf.net/kor-elf/gui-for-ffmpeg/src/branch/main/LICENSE-3RD-PARTY.txt">LICENSE-3RD-PARTY.txt</a>).</p>
<img src="images/screenshot-gui-for-ffmpeg.png"> <img src="assets/screenshot-gui-for-ffmpeg.png" alt="Скриншот программы">
<p>Скачать скомпилированные готовые версии можно тут: <a href="https://git.kor-elf.net/kor-elf/gui-for-ffmpeg/releases">https://git.kor-elf.net/kor-elf/gui-for-ffmpeg/releases</a>.</p> <p>Скачать скомпилированные готовые версии можно тут: <a href="https://git.kor-elf.net/kor-elf/gui-for-ffmpeg/releases">https://git.kor-elf.net/kor-elf/gui-for-ffmpeg/releases</a>.</p>
@@ -13,6 +13,18 @@
1. go install fyne.io/fyne/v2/cmd/fyne@latest 1. go install fyne.io/fyne/v2/cmd/fyne@latest
2. fyne get git.kor-elf.net/kor-elf/gui-for-ffmpeg 2. fyne get git.kor-elf.net/kor-elf/gui-for-ffmpeg
## Скомпилировать через Makefile:
1. git clone https://git.kor-elf.net/kor-elf/gui-for-ffmpeg.git
2. Переходим в папку проекта и там переходим в папку src: **cd gui-for-ffmpeg**
3. Ознакамливаемся, что нужно ещё установить для Вашей ОС для простого запуска (через go run) тут: https://docs.fyne.io/started/
4. go install github.com/fyne-io/fyne-cross@latest
* У Вас так же должен быть установлен docker
* О fyne-cross можно по подробней почитать тут: https://github.com/fyne-io/fyne-cross
5. * make build-for-linux_amd64
* make build-for-windows_amd64
* Или просто **make build**
6. Создаться папка с архивом в **fyne-cross/releases**
## Скомпилировать через исходники: ## Скомпилировать через исходники:
1. git clone https://git.kor-elf.net/kor-elf/gui-for-ffmpeg.git 1. git clone https://git.kor-elf.net/kor-elf/gui-for-ffmpeg.git
2. Переходим в папку проекта и там переходим в папку src: **cd gui-for-ffmpeg** 2. Переходим в папку проекта и там переходим в папку src: **cd gui-for-ffmpeg**
@@ -21,11 +33,7 @@
5. go install github.com/fyne-io/fyne-cross@latest 5. go install github.com/fyne-io/fyne-cross@latest
* У Вас так же должен быть установлен docker * У Вас так же должен быть установлен docker
* О fyne-cross можно по подробней почитать тут: https://github.com/fyne-io/fyne-cross * О fyne-cross можно по подробней почитать тут: https://github.com/fyne-io/fyne-cross
6. * fyne-cross windows --icon icon.png --app-id "." -name "gui-for-ffmpeg" 6. * fyne-cross windows
* fyne-cross linux --icon icon.png --app-id "." -name "gui-for-ffmpeg" * fyne-cross linux
7. Создаться папка **fyne-cross/bin** и там будет созданна папка с тем названием под которую Вы компилировали приложения (linux-amd64 или windows-amd64). 7. Создаться папка **fyne-cross/dist** и там будет созданна папка с тем названием под которую Вы компилировали приложения (linux-amd64 или windows-amd64).
8. В папку **fyne-cross/bin/linux-amd64** или **fyne-cross/bin/windows-amd64** копируете: 8. В папке **fyne-cross/bin/linux-amd64** или **fyne-cross/bin/windows-amd64** будут архивы, которые надо распаковать и пользоваться программой.
* LICENSE
* LICENSE-3RD-PARTY.txt
<p><strong>Структура должна получиться такая:</strong></p>
<img src="images/screenshot-folder-structure.png">

BIN
assets/icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

39
dist/linux/Makefile vendored Normal file
View File

@@ -0,0 +1,39 @@
# If PREFIX isn't provided, we check for $(DESTDIR)/usr/local and use that if it exists.
# Otherwice we fall back to using /usr.
LOCAL != test -d $(DESTDIR)/usr/local && echo -n "/local" || echo -n ""
LOCAL ?= $(shell test -d $(DESTDIR)/usr/local && echo "/local" || echo "")
PREFIX ?= /usr$(LOCAL)
Name := "gui-for-ffmpeg"
Exec := "gui-for-ffmpeg"
Icon := "gui-for-ffmpeg.png"
default:
# User install
# Run "make user-install" to install in ~/.local/
# Run "make user-uninstall" to uninstall from ~/.local/
#
# System install
# Run "sudo make install" to install the application.
# Run "sudo make uninstall" to uninstall the application.
install:
install -Dm00644 usr/local/share/applications/$(Name).desktop $(DESTDIR)$(PREFIX)/share/applications/$(Name).desktop
install -Dm00755 usr/local/bin/$(Exec) $(DESTDIR)$(PREFIX)/bin/$(Exec)
install -Dm00644 usr/local/share/pixmaps/$(Icon) $(DESTDIR)$(PREFIX)/share/pixmaps/$(Icon)
uninstall:
-rm $(DESTDIR)$(PREFIX)/share/applications/$(Name).desktop
-rm $(DESTDIR)$(PREFIX)/bin/$(Exec)
-rm $(DESTDIR)$(PREFIX)/share/pixmaps/$(Icon)
user-install:
install -Dm00644 usr/local/share/applications/$(Name).desktop $(DESTDIR)$(HOME)/.local/share/applications/$(Name).desktop
install -Dm00755 usr/local/bin/$(Exec) $(DESTDIR)$(HOME)/.local/bin/$(Exec)
install -Dm00644 usr/local/share/pixmaps/$(Icon) $(DESTDIR)$(HOME)/.local/share/icons/$(Icon)
sed -i -e "s,Exec=$(Exec),Exec=$(DESTDIR)$(HOME)/.local/bin/$(Exec),g" $(DESTDIR)$(HOME)/.local/share/applications/$(Name).desktop
user-uninstall:
-rm $(DESTDIR)$(HOME)/.local/share/applications/$(Name).desktop
-rm $(DESTDIR)$(HOME)/.local/bin/$(Exec)
-rm $(DESTDIR)$(HOME)/.local/share/icons/$(Icon)

7
dist/linux/Readme-eng.txt vendored Normal file
View File

@@ -0,0 +1,7 @@
User install
Run "make user-install" to install in ~/.local/
Run "make user-uninstall" to uninstall from ~/.local/
System install
Run "sudo make install" to install the application.
Run "sudo make uninstall" to uninstall the application.

7
dist/linux/Readme-rus.txt vendored Normal file
View File

@@ -0,0 +1,7 @@
Установить для пользователя (рекомендуется)
Запустите "make user-install" для установки в домашнюю папку ~/.local/
Запустите "make user-uninstall" для удаления из домашней папки ~/.local/
Установить для всей системы
Запустить "sudo make install" Для установки в систему.
Запустить "sudo make uninstall" Для удаления из системы.

View File

@@ -0,0 +1,9 @@
[Desktop Entry]
Type=Application
Name=GUI for FFmpeg
GenericName=GUI for FFmpeg
Exec=gui-for-ffmpeg
Icon=gui-for-ffmpeg
Comment=A simple interface for the FFmpeg console utility.
Categories=AudioVideo;Utility;
Keywords=ffmpeg;media;convert;transcode;audio;video;конвертер;видео;аудио;кодек;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

View File

@@ -19,7 +19,7 @@ type controller struct {
} }
func NewController(app application.AppContract) ControllerContract { func NewController(app application.AppContract) ControllerContract {
fyneWindow := app.FyneApp().NewWindow(app.FyneApp().Metadata().Name) fyneWindow := app.FyneApp().NewWindow("GUI for FFmpeg")
fyneWindow.SetMaster() fyneWindow.SetMaster()
queueLayout := window.NewQueueLayout(app.GetFFmpegService()) queueLayout := window.NewQueueLayout(app.GetFFmpegService())
app.GetQueueService().AddListener(queueLayout) app.GetQueueService().AddListener(queueLayout)