Repository navigation
Releases: superyngo/ffmpeg_toolkit
Releases · superyngo/ffmpeg_toolkit
Release list
Release v0.5.0
What's Changed
Added
- Added hardware acceleration fallback for
_ffmpeg()and_ffprobe(): when a command fails with-hwaccelset, automatically retries without hardware acceleration for improved compatibility on systems where hwaccel is unavailable or misconfigured
Fixed
- Fixed critical motion detection semantics bug in segment set operations (
_extract_motion_segments()now returns boundaries with consistent semantics aligned with_extract_non_silence_info()) - Fixed
cut_motionlesslogic
Other
- Restored documentation files
- Added
workflow_dispatchtrigger to publish workflow
Release v0.3.0
Added
- Segment set operations feature for combining silence and motion detection
- New utility functions for segment set operations:
_union_segments()- Union of two segment sets (A OR B)_intersect_segments()- Intersection of two segment sets (A AND B)_difference_segments()- Difference of two segment sets (A - B)_xor_segments()- Symmetric difference (XOR) of two segment sets_complement_segments()- Complement of a segment set
- New
SegmentOperationenum with operations: UNION, INTERSECTION, SOUND_ONLY, MOTION_ONLY, XOR, COMPLEMENT - New
CutByDetectiontask class for combined silence and motion detection with set operations - New
PARTIAL_TASKS.cut_by_detection()factory method - Export
SegmentOperationfrom package__init__.py
- New utility functions for segment set operations:
- Updated documentation:
ARCHITECTURE.md- Added CutByDetection section and segment set operations algorithmsPORTING_GUIDE.md- Added segment set operations implementation guide
Usage Example
from ffmpeg_toolkit import FF_TASKS, SegmentOperation
# Keep segments with sound OR motion (union - keeps most content)
FF_TASKS.CutByDetection(
input_file="input.mp4",
operation=SegmentOperation.UNION
).render()
# Keep only segments with sound AND motion (intersection - highlights)
FF_TASKS.CutByDetection(
input_file="input.mp4",
operation=SegmentOperation.INTERSECTION
).render()