hdsdi3g / medialib Goto Github PK
View Code? Open in Web Editor NEWAll libs for media manipulation tools
License: GNU Lesser General Public License v3.0
All libs for media manipulation tools
License: GNU Lesser General Public License v3.0
After hdsdi3g/prodlib#75
netcat -l 4444
ffmpeg -nostats -hide_banner -stats_period 1 -progress tcp://localhost:4444 -i video.webm -an -vf siti,metadata=mode=print:file=- -f null -
frame=1
fps=0.00
stream_0_0_q=-0.0
bitrate=N/A
total_size=N/A
out_time_us=41667
out_time_ms=41667
out_time=00:00:00.041667
dup_frames=0
drop_frames=0
speed=2.69x
progress=continue
frame=11
fps=10.43
stream_0_0_q=-0.0
bitrate=N/A
total_size=N/A
out_time_us=458333
out_time_ms=458333
out_time=00:00:00.458333
dup_frames=0
drop_frames=0
speed=0.434x
progress=continue
frame=15
fps=9.04
stream_0_0_q=-0.0
bitrate=N/A
total_size=N/A
out_time_us=625000
out_time_ms=625000
out_time=00:00:00.625000
dup_frames=0
drop_frames=0
speed=0.377x
progress=end
progress is always at chunck's end (ffmpeg doc say that).
Or via https://qpid.apache.org/components/broker-j/index.html / mock with https://github.com/fridujo/rabbitmq-mock
Like AudioFilterChannelsplit or AudioFilterJoin
/fflauncher/src/test/resources/ffprobe-streams-packets.xml.gzip
(load it with https://commons.apache.org/proper/commons-compress)Load with:
ffprobe -show_frames -print_format xml -show_packets -i <>
XML file output is very big, more than 1MB/30 sec.
Now, with BIT_DEPTHS:
[...]
FLAGS NAME NB_COMPONENTS BITS_PER_PIXEL BIT_DEPTHS
-----
IO... yuv420p 3 12 8-8-8
[...]
java.lang.NumberFormatException: For input string: "-nan"
at java.base/jdk.internal.math.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2054)
at java.base/jdk.internal.math.FloatingDecimal.parseFloat(FloatingDecimal.java:122)
at java.base/java.lang.Float.parseFloat(Float.java:476)
at java.base/java.lang.Float.valueOf(Float.java:440)
at tv.hd3g.fflauncher.filtering.lavfimtd.LavfiMetadataFilterParser.parseFloat(LavfiMetadataFilterParser.java:271)
at java.base/java.util.Optional.map(Optional.java:260)
at tv.hd3g.fflauncher.filtering.lavfimtd.LavfiMetadataFilterParser.extractMetadataFloat(LavfiMetadataFilterParser.java:259)
at tv.hd3g.fflauncher.filtering.lavfimtd.LavfiMetadataFilterParser.extractMetadatas(LavfiMetadataFilterParser.java:225)
at tv.hd3g.fflauncher.filtering.lavfimtd.LavfiMetadataFilterParser.lambda$completeFrame$5(LavfiMetadataFilterParser.java:168)
at java.base/java.util.HashMap$EntrySet.forEach(HashMap.java:1126)
at tv.hd3g.fflauncher.filtering.lavfimtd.LavfiMetadataFilterParser.completeFrame(LavfiMetadataFilterParser.java:168)
at tv.hd3g.fflauncher.filtering.lavfimtd.LavfiMetadataFilterParser.addLavfiRawLine(LavfiMetadataFilterParser.java:100)
And implement it in MediaAnalyserSession
With
ffmpeg -i <> -vf select="gte(scene\,0)",metadata=print:file=- -an -f null -
Return lavfi.scene_score=0.002568
But select seems not working with anothers filters (return always scene_score=0)...
When hdsdi3g/prodlib#74 is closed and published.
AKA create a parser for #13 results.
Get in realtime, or in onEnd mode.
TODO:
Add duration limitation on #14 MediaAnalyser
DEBUG Start /usr/local/bin/ffmpeg -progress tcp://127.0.0.1:39907 -stats_period 1 -vn -i .demo-media-files/demo-render.wav -nostats -hide_banner -af aphasemeter=video=0,astats=metadata=1:measure_perchannel=DC_offset+Peak_level+Flat_factor+Peak_count+Noise_floor+Noise_floor_count+Entropy:measure_overall=none,silencedetect,ametadata=mode=print:file=-,ebur128=peak=sample+true -f null -
Exception in thread "Socket watcher for ffmpeg progress" java.lang.NumberFormatException: For input string: "N/A"
at java.base/jdk.internal.math.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2054)
at java.base/jdk.internal.math.FloatingDecimal.parseFloat(FloatingDecimal.java:122)
at java.base/java.lang.Float.parseFloat(Float.java:476)
at java.base/java.lang.Float.valueOf(Float.java:440)
at tv.hd3g.fflauncher.progress.ProgressBlock.getSpeedX(ProgressBlock.java:122)
at media.mexm.mediadeepa.service.FFmpegServiceImpl$1.onProgress(FFmpegServiceImpl.java:307)
at tv.hd3g.fflauncher.progress.ProgressListenerSession.listen(ProgressListenerSession.java:97)
at java.base/java.lang.Thread.run(Thread.java:833)
I```
Add the help of AudioChannelManipulation with the audio separated tracks (MXF) for #14 MediaAnalyser tool.
Idem for silencedetect
cropdetect
or cropdetect=mode=mvedges
Never cropdetect=mode=black
Switch from
-af filter,filter,ametadata
To
-filter_complex [0:1]filter,ametadata=mode=print:file=-;[0:1]filter,ametadata=mode=print:file=- -f null -
Same for video.
So, must fix this: #33
Check behavior if:
lavfi.silence_end
or duration
is missingRawStdErrFilterEvent should must be specialized:
Map<String filter name, String Line>
ImpEx text:
After hdsdi3g/prodlib#85.
Replace by VideoFilterSupplier origin type !
To manage Stream disposition: captions="0" descriptions="0" metadata="0" dependent="0" still_image="0"
audio: pcm_s16le null @ 48000 Hz [1536 kbps] set not by default
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.