Hi,
I am using FFAStrans to check master files against various broadcaster tech specs and it is working remarkable well.
One broadcaster needs to have 1 sec of black at the end of a file that operators sometimes miss. Is there a way to detect if a file has black for the last 25frames of the file?
Detect 1 sec black at the end of files
Re: Detect 1 sec black at the end of files
Hey Mr Grey,
lucky you just yesterday i did the same but 1 frame at start. I did alter it for you:
Please try out this one. Check out the commandline processor parameters,
Tells ffmpeg to seek -1 second from end.
Tells ffmpeg to alert if 0.9 seconds were black.
Just edit the values until it detects exactly what you like.
Take care, you cannot seek to -1 seconds and seek for 1 second black because the blackdetect would only report if black is longer than 1 second, so it would never detect because you only check exactly 1 second.
Also, if you seek -2 seconds and detect 1 second black, you would be notified that there is 1 second black WITHIN the last 2 seconds, not at the very end where you are looking for it to be.
Also, if there is too much black detected, you might want to add a thresshold, e.g.
blackdetect=d=2:pix_th=0.00
https://ffmpeg.org/ffmpeg-filters.html#blackdetect
lucky you just yesterday i did the same but 1 frame at start. I did alter it for you:
Please try out this one. Check out the commandline processor parameters,
Code: Select all
-sseof -1
Code: Select all
blackdetect=d=0.9
Just edit the values until it detects exactly what you like.
Take care, you cannot seek to -1 seconds and seek for 1 second black because the blackdetect would only report if black is longer than 1 second, so it would never detect because you only check exactly 1 second.
Also, if you seek -2 seconds and detect 1 second black, you would be notified that there is 1 second black WITHIN the last 2 seconds, not at the very end where you are looking for it to be.
Also, if there is too much black detected, you might want to add a thresshold, e.g.
blackdetect=d=2:pix_th=0.00
https://ffmpeg.org/ffmpeg-filters.html#blackdetect
emcodem, wrapping since 2009 you got the rhyme?
Re: Detect 1 sec black at the end of files
and @Ian_Grey please don't forget to report if it worked or if you maybe did it totally different in the end. It is always helpful for forum readers to know if the proposed stuff worked or not
emcodem, wrapping since 2009 you got the rhyme?
Re: Detect 1 sec black at the end of files
I think the -sseof -1 option does not work for the blacks detect.
At least for me it does not return anything despite there's some blacks frames present at the end.
However if I manually run blackframe check over the whole file, I receive a list of black frames relatively quickly:
Basically I need to check if the first and last frame of the file are black. Is it possible to get and parse this list with FFAStrans?
UPD:
Ok, it actually works, I should have put the -sseof -1 BEFORE the -i option... Sorry, false alarm:
Works beautifully, thanks!
Code: Select all
ffmpeg -i "D:\RENDER\test_black.avi" -sseof -1 -vf "blackframe=thresh=32:amount=50" -an -f null - 2>&1 | findstr "Parsed_blackframe" >> "blacks.txt"
However if I manually run blackframe check over the whole file, I receive a list of black frames relatively quickly:
Code: Select all
ffmpeg -i "D:\RENDER\test_black.avi" -vf "blackframe=thresh=32:amount=50" -an -f null - 2>&1 | findstr "Parsed_blackframe" >> "blacks.txt"
[Parsed_blackframe_0 @ 00000238859ba1c0] frame:0 pblack:100 pts:0 t:0.000000 type:I last_keyframe:0
[Parsed_blackframe_0 @ 00000238859ba1c0] frame:1 pblack:100 pts:1 t:0.040000 type:I last_keyframe:1
[Parsed_blackframe_0 @ 00000238859ba1c0] frame:2 pblack:99 pts:2 t:0.080000 type:I last_keyframe:2
[Parsed_blackframe_0 @ 00000238859ba1c0] frame:3 pblack:57 pts:3 t:0.120000 type:I last_keyframe:3
[Parsed_blackframe_0 @ 00000238859ba1c0] frame:42 pblack:93 pts:42 t:1.680000 type:I last_keyframe:42
[Parsed_blackframe_0 @ 00000238859ba1c0] frame:43 pblack:100 pts:43 t:1.720000 type:I last_keyframe:43
[Parsed_blackframe_0 @ 00000238859ba1c0] frame:44 pblack:100 pts:44 t:1.760000 type:I last_keyframe:44
[Parsed_blackframe_0 @ 00000238859ba1c0] frame:45 pblack:100 pts:45 t:1.800000 type:I last_keyframe:45
[Parsed_blackframe_0 @ 00000238859ba1c0] frame:46 pblack:100 pts:46 t:1.840000 type:I last_keyframe:46
UPD:
Ok, it actually works, I should have put the -sseof -1 BEFORE the -i option... Sorry, false alarm:
Code: Select all
ffmpeg -sseof -1 -i "D:\RENDER\test_black.avi" -vf "blackframe=thresh=32:amount=50" -an -f null - 2>&1 | findstr "Parsed_blackframe" >> "blacks.txt"
Re: Detect 1 sec black at the end of files
Yeey, congrats on getting it working And thanks for the response!
It is possible that it don't work exactly with -sseof (before -i) but in that case ffmepg is not able to seek in the container. But i guess such file formats are not subject to be sources for this kind of professional operations and they should be normalized to professional formats anyways.
emcodem, wrapping since 2009 you got the rhyme?
Re: Detect 1 sec black at the end of files
Is there any example workflows or resources where I can find info about checking tech specs with the tools available to FFastrans?
I've managed to create a decent proxy generating workflow (thanks emcodem), and next on the list is a QC / tech spec workflow.
I've managed to create a decent proxy generating workflow (thanks emcodem), and next on the list is a QC / tech spec workflow.
Re: Detect 1 sec black at the end of files
@Conniver that's definitely worth another thread
It's like no, we don't have anything in general and there is much possibilities. It depends on what you plan to do. E.g. Simple basic values checking like width, height, bitrate, audio layout... well we got inbuilt variables, functions and a conditional processor for that
Also, for very specialized XDCAM compliance error i had this example: viewtopic.php?f=5&t=1270&p=6881&hilit=silicon#p6881
It's like no, we don't have anything in general and there is much possibilities. It depends on what you plan to do. E.g. Simple basic values checking like width, height, bitrate, audio layout... well we got inbuilt variables, functions and a conditional processor for that
Also, for very specialized XDCAM compliance error i had this example: viewtopic.php?f=5&t=1270&p=6881&hilit=silicon#p6881
emcodem, wrapping since 2009 you got the rhyme?