Hello,
i downloaded video files with the tool "letmeatit". I noticed, that my files always freeze for a few moments. This is very random. Everytime i download it again, the freezes are on another place. :/
Can i check my videos with some kind of tool, that shows me the exact spot of the freezes? The videos are quite long, so i can't check them myself after every download attempt. :/ Or did i make something wrong with letmeatit?
sorry for english
Thanks a lot
+ Reply to Thread
Results 1 to 13 of 13
-
Last edited by schmutzbrust; 11th Apr 2020 at 17:11.
-
If the frames repeat exactly, then it is very easy to find the frame numbers where duplicates occur using an AVISynth script.
Here is some old code I had lying around. If you only need to find true duplicates, set the blankthreshold value to a really small number, like 0.1.
Code:#This script finds exact duplicate frames and outputs the frame numbers loadPlugin("c:\Program Files\AviSynth 2.5\plugins\MPEGDecoder.dll") loadPlugin("c:\Program Files\AviSynth 2.5\plugins\dgdecode.dll") #Set blankthreshold to a really low value, like 0.01, if you only want to detect true duplicates global blankthreshold=3 filename = "e:\output_duplicate_frames.txt" AVISource("e:\fs.avi").killaudio() i=AssumeBFF.ConvertToYV12 #This line below will output EVERY frame that is below threshold, which results in LOTS of frames #Normally you don't do this, but it is included for those who want this capability. #WriteFileIf(last, filename, "(YDifferenceFromPrevious(i)<=blankthreshold)", "current_frame+1", append = false) #The line below writes the FIRST frame that falls below the threshold WriteFileIf(last, filename, "(YDifferenceFromPrevious(i)>blankthreshold)&&YDifferenceToNext(i)<=blankthreshold", "current_frame", append = false) #Use this instead of WriteFile in order to determine blankthreshold #ScriptClip("Subtitle(String(YDifferenceFromPrevious(i)))")
-
Thanks a lot for your post and the script. Unfortunately it won't regognize the freezes. :/ Tried several values. :/
Maybe it's not a freeze in a classic way, i don't know whats the problem. -
-
Here's a 1 min Sample (look from 0:35)
https://1fichier.com/?bx3qtex2ryv4k3ocmvs2 -
Code:
ffmpeg -v error -i "Path to file" -f null -
Code:[h264 @ 0000012873e5a100] Reference 7 >= 2 [h264 @ 0000012873e5a100] error while decoding MB 68 20, bytestream 167 [h264 @ 00000128741e2340] error while decoding MB 96 14, bytestream -9
Cu Selurusers currently on my ignore list: deadrats, Stears555, marcorocchini -
ffprobe shows the video is VFR. Most frames are displayed for ~33 ms. But frame 1108 is displayed for 5100 ms, and frame 1134 is displayed for 5167 ms.
A slight mod of johnmeyer's script:
Code:#This script finds exact duplicate frames and outputs the frame numbers #loadPlugin("c:\Program Files\AviSynth 2.5\plugins\MPEGDecoder.dll") #loadPlugin("c:\Program Files\AviSynth 2.5\plugins\dgdecode.dll") #Set blankthreshold to a really low value, like 0.01, if you only want to detect true duplicates global blankthreshold=0.1 filename = "test_duplicate_frames.txt" LWlibavVideoSource("test.mkv", fpsnum=30000, fpsden=1001) # converts to CFR i=last #This line below will output EVERY frame that is below threshold, which results in LOTS of frames #Normally you don't do this, but it is included for those who want this capability. #WriteFileIf(last, filename, "(YDifferenceFromPrevious(i)<=blankthreshold)", "current_frame+1", append = false) #The line below writes the FIRST frame that falls below the threshold WriteFileIf(last, filename, "(YDifferenceFromPrevious(i)>blankthreshold)&&YDifferenceToNext(i)<=blankthreshold", "current_frame", append = false) #Use this instead of WriteFile in order to determine blankthreshold #ScriptClip("Subtitle(String(YDifferenceFromPrevious(i)))")
Code:498 501 504 507 1106 1283 1285 1496 1499 1502 1505 1508 1797
Last edited by jagabo; 13th Apr 2020 at 10:34.
-
@selur
Sorry, my bad. Now it worked:
@Jagabo
Thanks, but how i set the path to my video file? At the moment it says: Script error: There is no function named 'LWlibavVideoSource'
i assume, this is for avisynth?
Or is there a way to make a batch file out of it, so i just drag the video to it? If it works, i'll have to test a lot of them (videos) :/Last edited by schmutzbrust; 13th Apr 2020 at 10:50.
-
First you need to download and install the LSmash source filter for AviSynth. http://avisynth.nl/index.php/LSMASHSource
-
Here's an example batch file (you can drag/drop your sample on it) that will produce an AviSynth script and execute it via ffmpeg to produce the list of duplicates:
Code:echo LWLibavVideoSource("%~d1%~p1%~n1%~x1", fpsnum=30000, fpsden=1001) > "%~1.avs" echo WriteFileIf(last, "%~dpn1.dups.txt", "(YDifferenceFromPrevious(last)>0.1)&&YDifferenceToNext(last)<=0.1", "current_frame", append = false) >> "%~1.avs" ffmpeg -i "%~1.avs" -f null - pause
-
Download each video twice. Check if the CRC of the videos match. If they are the same, the videos downloaded correctly and the duplicate can be deleted. If the CRC differs, download the video for a third time. Compare the CRCs for two that match. Delete the wrong CRC video, as well as the duplicate.
While this method consumes more bandwidth and time, it ensures that it downloaded without errors in the stream.
Similar Threads
-
Format of the bbc iPlayer video downloaded files
By fbmate in forum Video Streaming DownloadingReplies: 3Last Post: 9th Apr 2020, 05:23 -
Tool to batch rename video files based on "encoded date"
By O0O0 in forum ComputerReplies: 49Last Post: 10th Jan 2020, 04:39 -
Free tool to sync audio and video files?
By yetanotherlogin in forum EditingReplies: 6Last Post: 15th Sep 2017, 14:00 -
Editing software for downloaded video files.
By Kmroc in forum EditingReplies: 1Last Post: 3rd Feb 2017, 07:51 -
Broken Files from Canon 6D and Support for Video Repair tool?
By ak727 in forum Video ConversionReplies: 6Last Post: 3rd Jul 2015, 12:50