Correct FFmpeg start time and duration impl on input source and MediaAnalyser #114
Bug fix: Correct N/A progress on FFprogressBlock and Correct NPE if MeasuredWav is empty or missing results
Create ImageSnapshotExtractor from video file with ffmpeg #95
Update parent version to 22.0.0 (maintenance version)
Create a FFprobe XML progress watcher/handler for FFprobeResultSAX #104
Update starter parent to 21.1.0
Big refactoring:
- Refactor high level process execution API: create ProcessingTool #105
- Upgrade fflauncher with ProcessingTool and clean up relative code #106
Create WavMeasure #96
Code maintenance:
- Disable default XSD parsing with ffprobejaxb during project build (see README)
- Test code clean
- Set default ffmpeg about max exec time to 5 sec (it can be now settable by system property)
Switch to Java 21 (LTS) and update to parent version (21.0.0) #102
Set astat measure per channel to "all" instead of a closed list #94
Correct tests after #99
Correct bug introduced by #97: add sync in ffprobe container analysing progress to correct (and concurent edits bug) #99
Add ffprobe container analysing progress #97
Add ffmpeg and ffprobe command lines in Media/ContainerAnalyserResult, code clean #92
Correct bugs with FFmpeg v7:
- Parse EBUR128 from lavfi metadata instead of strerr
- Not parse anything from stderr
- Set ffmpeg loglevel to warn
- Correct ffprobe result SAX entries (remove
coded_picture_number
anddisplay_picture_number
, renamepkt_duration
toduration
, andpkt_duration_time
toduration_time
, but keep previous behavior compatible) - Correct FFAbout with the new ffmpeg output syntax
- Return ffmpeg and ffprobe runned command lines
Update FFprobeJAXB to handle to ffprobe XML v7.0 #88
Update deps #85
Deeply refactor FFprobeJAXB to manage multiple ffprobe XSD versions #73
Update parent starter project to 19.0.0 #80
Bugfix: Better protection against special numbers, like "nan" or "-inf" on fflauncher #78
Bugfix: Correct Set by SortedSet for AudioFilterEbur128 (fflauncher) to correct Set stability in peakMode #76
Manage filter list with importFromOffline MediaAnalyserResult/Session #74
It breaks the actual code for this beacause MediaAnalyserResult was not symetrical: import/export looses informations on offline mode.
FFmpeg, LavfiMetadataFilterParser, API fix: rename flatFactor to flatness (and move it from float to long) #71
Maintenance correction for FFprobeJAXB/MediaSummary:
- Bug correction: Correct #68 with "0" as profile for MediaSummary
- Set some public access for MediaSummary #67
- Update ffprobe xsd from 4.x to 6.0 #66
- Display new ffprobe dispositions to MediaSummary #66
Add "data" stream type for ffprobe (fflauncher) #63 (bug)
Bug correction: correct missing ffmpeg filter option for idet (rep_thres
) #61
Bug correction: correct MediaAnalyserSessionFilterContext class name #59
Bug correction: correct Number error with parseFloat (LavfiMetadataFilterParser) #57
Bug correction and internal API update:
- Correct NPE with MediaAnalyserResult, refactor the relation between Result and Session, and create MediaAnalyserSessionFilterContext #55
- Manage timecode entries for lavfi lines (just log it), instead of just Exception
Bug correction
Correct #53 and some bugs with MediaSummary:
- add correct video level tag for MPEG2, H264, HEVC and AV1 based on ffmpeg source
- remove "set not by default"
- replace "Has B frames" by "with B frames"
- replace "rng" by "col" (space, transfer, primaries)
- correct null with audio ChannelLayout
- correct format size lower than 1 MB.
Correct NumberFormatException during parsing ffmpeg progress #52
Maintenance version: update prodlib starter version from 12.3.1 to 18.0.2, set explicit jaxb-api and jaxb-runtime version (sticked to the older JAXB), code clean and refactor, remove log4j2 to logback.
Beware to explicit force jaxb-runtime to 2.3.8:
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<version>2.3.8</version>
</dependency>
Bug correction:
Protect against missing fields in FFprobeResultSAX #46
Correct #45 with Float parsing and lavfi metadatas
Maintenance, bug correction and refactoring about fflauncher MediaAnalyser/ContainerAnalyser #39 #40 #41 #42
Correct behavior with stderr event and non ebur128 lines, create LavfiMetadataFilterParser and move it all LavfiMtdProgram Frames and Events Extractors, implements ImpEx RAW text result to produce offline results to MediaAnalyser/ContainerAnalyser, implements ImpEx RAW text result to produce offline results to MediaAnalyser/ContainerAnalyser #33
Correct ffprobeJAXB bug if media source don't show bitrate in video or audio stream #43
Create and compute GOPStatItem in fflauncher #44
Update lift.toml (Sonatype-lift): add ignoreRules Var, Varifier and UnnecessarilyFullyQualified
Correct bugs:
Better behavior with Progress if ffmpeg crash on boot: catch SocketException #32
Add missing video boolean option for aphasemeter filter (by default ignore video output) #30
Display ffmpeg and ffprobe command lines on run MediaAnalyser/ContainerAnalyser
Correct parse and detection on ebur128 stderr output (nan values and missing summary) #35
Remove metadata filters added by default in MediaAnalyser
Add better created/configured filters in AddFiltersTraits
Create FFprobeJAXB MediaSummary #28
Correct #27 manage FFAboutVersion with ffprobe and ffplay
ProgressBlock don't show correct "getOutTimeMs"
Correct Cropdetect filter, remove default mode=black #36
Change parent deps from parent to starter, add explicit deps to hamcrest and lombok: resolve #15
Update parent project version from 12.1.0 to 12.3.0, correct #18 #19
Update parent version from 12.3.0 to 12.3.1: explicit add of Commons Compress #25
Light the big FFmpeg class to traits (code clean), move FFmpeg enums to enums package #11
Refactor Filter API, create Traits for it #13
Create new ffmpeg filters: ametadata, aphasemeter, siti, metadata, mestimate, idet, freezedetect, cropdetect, blockdetect, blackdetect, volumedetect, silencedetect, ebur128 and astats #13
Implements filters (deep audio and video) analyzers, and create ffmpeg MediaAnalyser recipe #14
Create ffmpeg's lavfi filter parsers to extract filter results in Java objects #14
Implements ffmpeg progress via local socket listener #16
Create ContainerAnalyser: parse ffprobe XML result, streams and packets #17
Code clean, and create DirectStandardOutputStdErrRetention to get process's stdout as InputStream, and stderr as text retention #26
Switch from Java 11 (LTS) to Java 17 (LTS) #9