Hi People,
I wanted to merge the DVR footage from long trips and get a video file that is significantly sped up, and here's the crude result. Works for my T'eyes CC3, but should work for most FYT units.
Youtube video of resultant file
DashCam_Stitcher.zip <- Contains all executable and the Python script.
FFMPEG & FFPROBE need to be in your PATH for this to work
The program is a command line program, used in the format-> DashCam_Stitcher F 50
Where the source drive from the DVR is at F (in my case)
And the number of times the video footage is sped up is 50 (You can use 1, 2, 10, 100, or whatever)
Only for windows, and only for MP4. Hack my source if you want to change this.
That's the short version if you want to avoid my waffle below.
I driven my wife nuts trying to get this working, and so even though you might think you should thank me, if you do use this please comment with "Thank You Benja"
NOTE: This program will not automatically erase or fix any of your files. If that is needed, the program will prompt you with some helpful hints to fix yourself. I used someone’s demo program and was lucky I had a backup as it wiped my tf card.
Summary
I’ve used Python to script, FFPROBE to find all the corrupt files using a two-pass system, and you will be prompted to use FFMPEG to fix a few of those corrupt files (Or delete). And then automated FFMPEG creating sped up versions of each file in date time stamp order and FFMPEG merged them all into one big video file.
Waffle
If they don’t exist this program will create the following directories
C:\Users\[currentuser]\Videos\DashCam – Where the final merged file appear.
C:\Users\[currentuser]\Videos\DashCam\SpedUp – Where all the individually sped up versions of each file on your TF card will appear.
A sorted list of only the MP4 files is created
A first quick corrupt file check is done on each file using FFPROBE -hide_banner -v error eachfile.mp4. If bad MP4’s are found the program will stop, and ask you to fix them using FFMPEG -i xxxxx.mp4 -c copy xxxxxa.mp4 (or any method you can think of, including deleting the file).
Run dashcam_stitcher again to continue. If no bad files are found, a second much more thorough CPU intensive check is done. The second pass is because I have found files that slip though the first pass, and then kill the merge process at the end.
This second pass uses FFPROBE -show_entries stream=r_frame_rate,nb_read_frames,duration -select_streams v -count_frames -of compact=p=1:nk=1 -threads 3 -v 0 video.mp4
Which on a good file will show stream|25/1|299.000000|7475, but I have found some that cannot be repaired that read as stream|12000/1|131.160000|N/A or similar. If so, program stops again asking you to resolve as before.
Run dashcam_stitcher again to continue. If the video files get through both these checks, each file is then processed and put into the SpedUp folder. Then the program concatenates all the files together in order, and places a uniquely named (based on date and time) video file in the Dashcam folder.
Checking, encoding, and stitching the files together using this program will take a while, but much quicker than doing it by hand.
Again, if you can please comment with "Thank You Benja"
Very nice script.
However, I would use "-movflags faststart" to enable streaming (relocate the moov atom from the end of the file to the beginning of the file).
like
Code:
cmd = "ffmpeg -f concat -i "+concattextfile+" -movflags faststart -c copy "+outputmoviefilename
Of course: Youtube will do this automatically for you, but on your computer or from a server it will start streaming without the player first having to load the entire file
Edit: Sorry.
"Thank You Benja"
surfer63 said:
Very nice script.
However, I would use "-movflags faststart" to enable streaming (relocate the moov atom from the end of the file to the beginning of the file).
like
Code:
cmd = "ffmpeg -f concat -i "+concattextfile+" -movflags faststart -c copy "+outputmoviefilename
Of course: Youtube will do this automatically for you, but on your computer or from a server it will start streaming without the player first having to load the entire file
Edit: Sorry.
"Thank You Benja"
Click to expand...
Click to collapse
Thanks mate.
Links above have been updated to version 0.2. Your suggestion, and a minor change to file extension filtering.
If you can't get to the files. Big oops on my part.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Your file violates Google Drive's Terms of Service‘DashCam_Stitcher.zip’ contains content that violates Google Drive's Malware and Similar Malicious Content policy. Some features related to this file may have been restricted. If you think this is an error and would like the Trust & Safety team to review this file, request a review below.
Restricted file
Google claims it found a virus. But my system seems clean. Windows defender is not having problems??
mjcummins said:
View attachment 5718109 Google claims it found a virus. But my system seems clean. Windows defender is not having problems??
Click to expand...
Click to collapse
I don't find viruses in your files. However, you use portable executables (pe32+). They are a known source of malware. That is also why ffprobe.exe and ffmpeg.exe are both 117MB. Maybe you get false positives on these exe files as they do contain all libs and necessary files inside and Google can't access them.
Well, I did put in the "Review Request" to almighty Google.
Are the files currently accessible? I own them, so my testing access doesn't really count I think.
mjcummins said:
Well, I did put in the "Review Request" to almighty Google.
Are the files currently accessible? I own them, so my testing access doesn't really count I think.
Click to expand...
Click to collapse
I use Linux laptops and Chromebooks. I can download them on my systems. Of course I can't use the windows exes and I need to modify your python script to make it linux compatible (or more universal).
surfer63 said:
I use Linux laptops and Chromebooks. I can download them on my systems. Of course I can't use the windows exes and I need to modify your python script to make it linux compatible (or more universal).
Click to expand...
Click to collapse
More universal would be good. Bit more code required to be able to use multiple systems. I have seen some examples, but not a good example yet. I've still got a lot of relearning and learning to get back up to speed.
If your process uses Python & FFMpeg, etc. than simply create scripts for Windoze, Linux, etc. making sure any folders created are relative to the users starting location.
Then people can simply install the official ffmpeg for their OS, and use your scripts. No need to create non-portable executables.
pwood999 said:
If your process uses Python & FFMpeg, etc. than simply create scripts for Windoze, Linux, etc. making sure any folders created are relative to the users starting location.
Then people can simply install the official ffmpeg for their OS, and use your scripts. No need to create non-portable executables.
Click to expand...
Click to collapse
In line 37 to 40 you could use:
Code:
userDir = os.path.expanduser("~")
userVideoDir = os.path.join(userDir, r"Videos")
dashcamdir = os.path.join(userVideoDir, r"DashCam")
spedupdir = os.path.join(dashcamdir, r"SpedUp")
This would immediately make it compatible on every by python supported platform, no issues with forward/backward path separators: python will do it for you. (And I like the fact that you do use raw strings, but in this case it is all ansi characters and nothing weird in there)
The source dir (sys.argv[1]), and thereby source_folder, would be an issue as Windows is the only system in the world using drive letters.
But in that case source-dir should be omitted and "source_path" should be used which could be "D:\DCIM" or "<sdcard name>/DCIM" Or something else if some exotic dashcam breaks all ISO-standards and uses something else than DCIM.
Code:
if platform.system() == 'Windows':
do something windows
else
do something all other OSes
surfer63 said:
Code:
userDir = os.path.expanduser("~")
userVideoDir = os.path.join(userDir, r"Videos")
dashcamdir = os.path.join(userVideoDir, r"DashCam")
spedupdir = os.path.join(dashcamdir, r"SpedUp")
This would immediately make it compatible on every by python supported platform, no issues with forward/backward path separators: python will do it for you. (And I like the fact that you do use raw strings, but in this case it is all ansi characters and nothing weird in there)
Click to expand...
Click to collapse
Or slightly different to show the "automatic power" of python.
Code:
userDir = os.path.expanduser("~")
userVideoDir = os.path.join(userDir, r"Videos")
dashcamdir = os.path.join(userDir, r"Videos", r"DashCam")
spedupdir = os.path.join(userDir, r"Videos", r"DashCam", r"SpedUp")
But maybe the first code block is probably more clear to any reader what is mentioned.
And then finally:
Code:
spedupdir = os.path.join(os.path.expanduser("~"), r"Videos", r"DashCam", r"SpedUp")
But this makes it really untransparent for the unexperienced reader/programmer "where we came from".
I prefer the extra steps, also for myself not to get lost and make errors.
Related
Hi, I am developing a little utility for easy work with ADB. Simple GUI alow many functions and others are incoming in every next relase.
Now is supported: Install single/multi APK, Upload files, Send commands, Restart normal/bootloader/recovery, Wipe system/data/all, Connect Mass Storage for reading and writing on PC and phone simultaneosly, Remount /system as write/read, Taking screenshots and Dialing numbers.
Many functions are accesible from tray icon
There is one little problem, util is developed in my language (CZE) > if interested, i can make multi language UI. Hmmm?
/Edit: Added multi language support in 0.8 ver
Known Bugs: no complete english translation, toolstrip bar is not fully working, file send to the sdcard not working
Code:
26.8.2009 - Changelog ver. 0.8
=> add support for mount /sdcard accesible from pc and phone in one time
=> edited About Box
=> Status Bar with tooltips
=> multi language support - english and czech
20.8.2009 - Changelog ver. 0.7:
=> screenshots from device (Detox DLL, thx)
18.8.09 - Changelog ver. 0.6:
=> remount /system as writeable
=> run at start up with windows
=> install mutli APK (all APK from directory "multiapp" on the sdcard)
=> edited AboutBox
17.8.09 - Changelog ver. 0.5:
=> dialing phone numbers
=> icons in menu
16.8.09 - Changelog ver. 0.4:
=> task bar icons with most useful functions
16.8.09 - Changelog ver. 0.3:
=> wipe support (system, data, all)
15.8.09 - Changelog ver. 0.2:
=> restart support (normal, bootloader, recovery)
15.8.09 - Changelog ver. 0.1:
=> install APK
=> send command directly to the device
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Just release it and the source
Making an English version would be a necessity, further translations can be done if anyone cares to translate it.
What programming language is it written in? I've started dusting off a similar project I'd been working on since ComplexMind is on hiatus with his "My Android Manager". I think if we can build a consolidated pc interface it would help out the community a lot. Open the source and I'm sure you'll have people beating a path to your door to help out.
VB.NET, i am plannig release source bot not yet... Wow, i never hear about My Android Manager but i checked now and I can stop develop this utility
kissman21 said:
VB.NET, i am plannig release source bot not yet... Wow, i never hear about My Android Manager but i checked now and I can stop develop this utility
Click to expand...
Click to collapse
My Android Manager sucks, it's slow and buggy.
kissman21 said:
VB.NET, i am plannig release source bot not yet... Wow, i never hear about My Android Manager but i checked now and I can stop develop this utility
Click to expand...
Click to collapse
I thought it looked like VB. You can definitely add me to the list of people interested in helping develop this further. My Android Manager hasn't moved for about a month. At least around here, that's quite a while. I've not worked much on localization before but dynamically labeling based on an indexed data file shouldn't be too hard. Do you currently use any sort of db storage or is strictly a command line wrapper at this point?
maxisma said:
My Android Manager sucks, it's slow and buggy.
Click to expand...
Click to collapse
I wouldn't say it sucks, but it is incomplete. Since the source is closed on it though we're at the whim of ComplexMind to fix things.
looking great! nice idea
but MAM have a "little thinks" about which i am thinkink "i must have in own app" such as phone detection and cmd output to gui.
Now I am using strictly defined commads and link library with functions for convert rgb565 to others usable formats. In future, i want make simple db with commands for easy updates and edits... And MUI is easy to implement, but need more time (work, work, work in IT is hard :-D )
kissman21 said:
VB.NET, i am plannig release source bot not yet... Wow, i never hear about My Android Manager but i checked now and I can stop develop this utility
Click to expand...
Click to collapse
so he posted this util and now is saying he is going to stop putting in the time?
just ironically My Android Manager have nice idea
kissman21 said:
but you have a "little thinks" about which i am thinkink "i must have in own app" such as phone detection and cmd output to gui.
Now I am using strictly defined commads and link library with functions for convert rgb565 to others usable formats. In future, i want make simple db with commands for easy updates and edits... And MUI is easy to implement, but need more time (work, work, work in IT is hard :-D )
Click to expand...
Click to collapse
Your time frames are your own, but around here people loose interest fast if things stop happening. My first thought with a back end db is that each control could be indexed and then captioned during a splash screen process for simple localization. Maybe crude, I'm not a professional programmer, but I think it would work. A quick Google search popped up a sample for capturing command line output. It would need a little work to adapt but I can see where it's going.
Code:
Dim CMD As New Process
Dim SW As System.IO.StreamWriter
Dim SR As System.IO.StreamReader
CMD.StartInfo.FileName = "cmd"
CMD.StartInfo.UseShellExecute = False
CMD.StartInfo.RedirectStandardInput = True
CMD.StartInfo.RedirectStandardOutput = True
CMD.StartInfo.CreateNoWindow = True
CMD.Start()
SW = CMD.StandardInput
SR = CMD.StandardOutput
SW.WriteLine("ping www.google.com")
CMD.Dispose()
SW.Dispose()
Do Until SR.EndOfStream = True
TextBox1.Text &= SR.ReadLine
TextBox1.Text &= Environment.NewLine
Loop
SR.Dispose()
i tried write a hundreds lines of code for creating nice shell output... even this but not works good
kissman21 said:
i tried write a hundreds lines of code for creating nice shell output... even this but not works good
Click to expand...
Click to collapse
I'll see if I can find some time to package this up as a class module and test it out. I'm watching the baby today so time is not my own. I think parsing the output would definitely be the tricky part. Then of course making that output useful.
2ben... your code have 2 big minus 1) when start command, application totaly freeze and waiting to command end 2) text output is writed after command ended better is System.Diagnostics.Process.Start
i'm fairly proficient in .net. looking forward to helping out. open up the source. better move on it quick though, these guys move fast.
kissman21 said:
2ben... your code have 2 big minus 1) when start command, application totaly freeze and waiting to command end 2) text output is writed after command ended better is System.Diagnostics.Process.Start
Click to expand...
Click to collapse
I think the "EndOfStream" property is not capturing correctly for some reason. It kept freezing for me when I first tried it. I've just about got it wrapped up in a module so the output is continually cached until the class is released. I'll try to post it soon, once it's working on my end that is.
i like this a lot. Looking good and willing to test. Can we have an English version though?
benmyers2941 said:
I think the "EndOfStream" property is not capturing correctly for some reason. It kept freezing for me when I first tried it. I've just about got it wrapped up in a module so the output is continually cached until the class is released. I'll try to post it soon, once it's working on my end that is.
Click to expand...
Click to collapse
I've successfully isolated the problem to the read stream not having the expected endofstream characters. I've not resolved a workaround though... yet.
Greetings Dear Friends,:highfive:
This will be a short tutorial on (1) WHY? , and (2) HOW? , GREAT ROM developers (and software programmers in general) post the cryptographic file hash values, along with the download links to their files.
This can easily become a LaBrea Tarpit (pun, haha), if you get 'stuck' on the word Crypto. But the sense that the word Crypto applies to this tutorial, has absolutely NOTHING to do with encryption, and nothing to do with signing any files, and nothing to do with X.509, or SSL, or anything related to non-repudiation, authentication, or secrecy. The methods of verifying the hash values described in this tutorial, are but one small area within the much broader field of Cryptography. The algorithms used to derive the digest values (aka, checksums) , and they only refer to the techniques and algorithms, which are similar (and to an extend, to some of the data standards), between those activities, and the primary activity that this tutorial is concerned with, namely, determining the identity of a file copy, matches the identity of the original file it was copied from.
To put it another way, let me quote my friend Jim Bridgman here, "We have both SHA-512 and Md5 going on, on the Atrix2 [for example, in the signed bootloader]. I don't want people becoming confused and thinking that the fxz and roms are signed with a "pure" crypto SHA-3 hash, when it is a cheksum derived from a crypto style hash." --- so, before going any further, please understand that this is not the top-secret spy type of stuff. As Jim points out, the hash functions that create the hash values in this tutorial are used as just plain ol' "typical... checksum{s}, and not the secure signature that most think of and understand from things like SSL, and RSA in thier VPN software".
This OP here is perhaps already longer than it truly needs to be, but it will also perhaps grow over time. That is because I do not currently have easy access to an Apple Mac computer, so I will begin with instructions focused on Windows users, then Linux, and lastly the Mac platform (I'm sort of hoping someone will help me out by posting some original screen caps and some basic instructions for Mac Users). In order to keep this tutorial to within some reasonable length, I am not going to try and describe how a message digest algorithm works (actually, they all works slightly different). But for the truly hard-core nut, here are some links to make you happy, if you wish to know more:
http://en.wikipedia.org/wiki/Md5
http://en.wikipedia.org/wiki/SHA-1
http://en.wikipedia.org/wiki/CRC32
http://en.wikipedia.org/wiki/Checksum
http://en.wikipedia.org/wiki/Cryptographic_hash_function
Thus, let us begin then...
(1) WHY should this behavior separate the GREAT DEV'S :angel: from the CRAPPY DEV'S :cyclops: ? The answer to this question is 2-fold, and includes a technical answer, as well as a philosophical one. First, you WILL eventually come to understand that many technical factors can result in a file downloaded that is not a perfect copy of the original. Network congestion, ISP Nazi-Proxies, failure to use Google DNS, hard-drive and other hardware/wire intermittent instabilities, human error, and many other problems can corrupt or cause loss of bits and packets in files. A cryptographic hash, is a VERY reliable way to positively identify the file, as a nearly exact copy (as near you will ever need). If a dev is egotistical (enjoys posting as showing-off primarily), is slightly sadistic (enjoys causing frustration), lacks empathy (never sympathizes with others), or is just plain sloppy and error-prone (makes more mistakes), they are less likely to take the extra time and effort to post any hash values. If a dev is detail oriented, cares about others (that social investments come back), has integrity (takes the honorable route), and take pride in their work (wants to pursue excellence), they are more likely to post hash values. :victory:
==========================================================
WINDOWS USERS
(2) HOW: There are a number of software applications that are totally FREE, that can make it a trivial (easy) task to obtain the hashes of a file. The program I use most often is called "HashTab" and it can be found here. Hashtab essentially adds a tab to the 'properties' of files, inside Windows explorer.
STEPS: So after you install HashTab, then right-click any file, select 'properties' and then the 2nd or 3rd tab over will be a tab labeled "File Hashes", which you can open, and then right-click again on one of the 3 default hashes (the most commonly used hash algorithms, CRC, MD5, and Sha-1), and select "Copy All" as you see in the screencap below:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
TYPICAL HASH VALUES:
CRC32: 0ED8B0A6
MD5: 7F9790B04684DA66222A4EAFE323CB2E
SHA-1: F839029742F73E508557E7B0674C5CE0B06AD815
There are other ways to also click both files and then do a comparison, so by all means, feel free to experiment with other methods and/or other applications.
==========================================================
LINUX USERS
(below commands, and screen capture image, compliments of Jim Bridgman --- thanks Jim!!)
Above image illustrates checking the md5, by using the proper command like this:
Code:
$ md5sum system.img
f9a74ca080a8ea2badb09c6d06badc42 system.img
EXPLANATION: In the above screen image, you can see that Jim was in the directory listed to the left of the $ sign, which is his 'prompt'. So he typed "md5sum system.img" (without the quotes), and the operating system then returned the result of that, which was the digest (basically, the hash value or checksum), and the name of the file that hash value corresponds to, which was "system.img". It is obvious that Jim perhaps ran the ls command (equiv. to dir in *nix), or he already knew that the system.img file was there. The first part he typed, aka, "md5sum" is the keyword for the function (or program application) that runs the command, and in this case, accepted the 'argument' which was the name of the file whose identity (checksum) is being checked.
==========================================================
APPLE MAC LION USERS
(coming soon, I hope?... with help?)
(below are some basic screenshots, from the HashTab website, used in accordance with "Fair Use" principles for non-profit, educational use only):good:
Apple Mac File Hashes (menu selection)
Apple Mac File Hashes (computing)
Apple Mac File Hashe (values displayed)
==========================================================
Hopefully, I have cleared up a little bit of confusion for someone new to the scene, or who may simply have never had the time to really research and understand a bit more about these hash values and why they are used the way they are (or how).
Best Regards,
Paul
ps. For easy reference, if you want to find this post again in the future, you can simply go here: links.PJR.bz/HashTabTutorial
Awesome, thank you for the great explanation!
Glad this is a sticky.
Thank for the HashTab link, it's nice to have something integrated into explorer instead of having to open a program to get the hashes.
congrats on sticky! this is super easy in linux. it is all built in to ubuntu. look it up, there is a shell command.
Here's an interesting link along these same lines.
http://forum.xda-developers.com/showthread.php?t=1727796
Very nicely done indeed! Thanks for the easy-to-follow explanation, and for putting this all together for us. Your posts are helpful and appreciated! Keep up the good work, Paul. :thumbup:
Sent from my MB865 using xda premium
As I've noticed requested a few times, Audacity for WinRT.
It's completely untested (except for starting up) at the moment - it's too loud where I happen to be for me to do much in the way of other testing. It did happily start up, though, once I got past:
Code:
# pragma comment(linker, "\"/manifestdependency:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='X86' publicKeyToken='6595b64144ccf1df'\"")
There's some potential breakage in a few places because it was using specialized functions for rounding; as well, most of the architecture-specific code was replaced with the generic versions. (Audacity has support for ARM, but it looks like it's only on Linux, and would require gcc to compile the ARM optimizations.)
Chris
EDIT: Added the source diffs. Most of the changes are to the build options (the diffs contain the migrated VS2012 project files as well) - apply with "cat patch | patch -p1" from the respective source directories. There's a patch included for both Audacity and wxWidgets, both working. The base tarballs can be found at the respective project websites.
wxWidgets: Don't let VS2012 build it automatically. As discovered by a few other people on some of the Win8 threads, VS2012 manages to start multiple processes that try to lock the same log file simultaneously and so the build breaks. I worked around this by building just the subprojects that I needed one at a time (right click on the project, build only [project].)
Audacity: Nothing major here except for disabling any and all inline assembler and letting it fall back on generic C/C++ defaults instead. The build doesn't end up copying the Nyquist files into the win\ARM\Unicode Release directory but since this seems like all it's doing is a straight copy operation, it shouldn't be a problem. Help isn't included (I haven't installed Python on any of my Win8 Pro installs yet, which is required to build the Audacity help), nor is it localized. Instructions for both are included in the Audacity source.
EDIT 2: Got a build of lame 3.99.5 for WinRT here:
http://forum.xda-developers.com/showpost.php?p=36968027&postcount=13
Follow the instructions in the post to add MP3 export support to Audacity.
EDIT 3:
Full source code for Audacity and wxWidgets:
https://www.dropbox.com/s/jvttp9em9w3xuon/audacity-winrt.zip
This is the full source used for building Audacity 2.0.2 and wxWidgets 2.8.12 for WinRT. The license is included in the ZIP file (audacity-src-2.0.2\LICENSE.txt - GPLv2; wxWidgets-2.8.12\docs\license.txt, wxWidgets-2.8.12\docs\lgpl.txt - LGPLv2 with additional rights). The Audacity build has been updated as well to include the license of both wxWidgets and Audacity.
Thanks for your work but I think you should post this in the Windows section specifically, threads get lost in this section quickly.
I would be posting it there but the entire Win8 section is blocked off to me until I manage to get in another 4 posts...
eksasol said:
Thanks for your work but I think you should post this in the Windows section specifically, threads get lost in this section quickly.
Click to expand...
Click to collapse
Nice job, thank you! Added to the list.
Anyone know if lame_enc.dll would be possible to also get compiled for ARM? Otherwise it's impossible to export to MP3.
jhoff80 said:
Anyone know if lame_enc.dll would be possible to also get compiled for ARM? Otherwise it's impossible to export to MP3.
Click to expand...
Click to collapse
It should be possible. As far as I'm aware, lame is pretty cross-platform already, so if anything it might be that the generic version of the code has to be built with vc2012 instead of an ARM-optimized port. I might take a look at that tomorrow.
works perfektly !
Thank you very much, this is working perfectly on my Surface!
Anyone come across any usb audio interface that works with Surface?
Also... I get this error when trying to run Audacity.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
lucas.scott said:
Anyone come across any usb audio interface that works with Surface?
Click to expand...
Click to collapse
The Sound Blaster X-Fi seems to work.
Sebasssss said:
The Sound Blaster X-Fi seems to work.
Click to expand...
Click to collapse
Isnt that PCI not USB?
Edit:
Nevermind, I see there are several. Id be looking for one with XLR jacks.
@lucas.scott: Hm. That import comes from msvcp110.dll - the C++ runtime library.
What's the version of C:\Windows\System32\msvcp110.dll on your system? On my system (which it seems to work fine on), Explorer says it's "11.0.50727.1", with a timestamp of 10/1/2012 9:31pm.
(There is another version of msvcp110.dll on the system, sitting in \Program Files\WindowsApps\Microsoft.VCLibs.*, of various versions; I bet those are there only to support Metro apps, but I could be wrong. In either case, the 11.0.50727.1 version pulled off my RT device has the export mentioned,)
Might be a missing update somewhere?
I've got a build of lame 3.99.5 done for WinRT as well.
In the archive is libmp3lame.dll - Audacity looks for this as lame_enc.dll, so:
Code:
copy libmp3lame.dll \path\to\audacity\lame_enc.dll
and MP3 export should work fine. As well, it's got the command line version of lame in the package as well - I think that depends on the original name.
irony_delerium said:
wxWidgets: Don't let VS2012 build it automatically. As discovered by a few other people on some of the Win8 threads, VS2012 manages to start multiple processes that try to lock the same log file simultaneously and so the build breaks. I worked around this by building just the subprojects that I needed one at a time (right click on the project, build only [project].)
Click to expand...
Click to collapse
I took a swing at Audacity myself and this problem drove me nuts! Wow.
Thanks for your work! Much appreciated!
irony_delerium said:
@lucas.scott: Hm. That import comes from msvcp110.dll - the C++ runtime library.
What's the version of C:\Windows\System32\msvcp110.dll on your system? On my system (which it seems to work fine on), Explorer says it's "11.0.50727.1", with a timestamp of 10/1/2012 9:31pm.
(There is another version of msvcp110.dll on the system, sitting in \Program Files\WindowsApps\Microsoft.VCLibs.*, of various versions; I bet those are there only to support Metro apps, but I could be wrong. In either case, the 11.0.50727.1 version pulled off my RT device has the export mentioned,)
Might be a missing update somewhere?
Click to expand...
Click to collapse
So i took a look at msvcp.dll.
Its ver. 11.00.50531.1
So thats noticeably later than what you are running. Any ideas as to why that is? My system is up to date.
lucas.scott said:
So i took a look at msvcp.dll.
Its ver. 11.00.50531.1
So thats noticeably later than what you are running. Any ideas as to why that is? My system is up to date.
Click to expand...
Click to collapse
Hm. I haven't got a clue. The only thing I can come up with is that I haven't gone through and updated VS2012 to it's latest patch yet, but that doesn't add up as far as the binaries go...
I'd also expect Windows to be telling you that it couldn't find that import in C:\Windows\System32\msvcp110.dll, not ...\Audacity\Audacity.exe, which being a program, has no exports.
What is winrt?
Sent from my Galaxy Nexus using Xparent Blue Tapatalk 2
I'll need to check out this port. I hope I don't get the DLL conflict. I am getting it with Dosbox and I still unsure what it could be.
Same issue
lucas.scott said:
Anyone come across any usb audio interface that works with Surface?
Also... I get this error when trying to run Audacity.
I'm getting the same error when I try to run Audacity. Did you ever get this resolved?
Click to expand...
Click to collapse
Right, since I don't know if this will fix it or not (probably not, if my scanning the list of imports is correct, but it's worth a try):
I just rebuilt Audacity, same version, slightly different options (non-Unicode build).
If this doesn't fix it, about the only other thing I can think of to do is to toss the copy of msvcp110.dll that came from my system, since it seems to be working.
Chris
(Yes, I know, it's named ".zip.zip". That's what I get for quickly renaming the file from "Audacity" to "Audacity-2.0.2.zip". Still need to tweak a few settings on this copy of Windows like "always show the file extension". Oh well.)
[APP] Raccoon v4.13 - An apk downloader for Google Play
Ever ran into one of these problems?
You want to check out an app, but your device is not officially supported.
After flashing a custom ROM, you no longer have Google Play available on your phone.
You updated an app, but the new version causes nothing but trouble and you want to go back to the previous version.
You are not satisfied with Google's privacy policy and would rather download apps without hooking your phone up to Google.
You want to check out apps without them cluttering up your "My Apps" list and potentially influencing app suggestions.
You don't have unlimited bandwidth at your disposal but want to install an app on multiple devices in your household.
Raccoon is a Google Play desktop client that will enable you to download APK files from Google Play and cache them locally on your desktop computer. You can maintain as many caches as you like (e.g. one per Google Account or one per device you own). Each cache is able to hold apps in multiple versions.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Click here to download
Usage instructions:
Install Java (java.com)
racoon.jar should now be executeable, start it like any other program
Enter your loginname and password (prefererably from a throw away account).
type "Onyxbits" into the textfield.
You should now see a list of all my apps (yes, shameless plug, I know).
Maybe download "List My Apps"
you will get an APK file, transfer that to your phone by whatever means suit you (e.g. copy via USB cable).
Enable "Unknown Sources" on your device to install the APK
Been waiting for something like this, great idea. Will test during the day.
Sent from my GT-N7105 using Tapatalk
The brave of heart will find some neat stuff in the development version:
java -jar racoon.jar -u -a <archive>
Will conveniently fetch the latest APKs for all the apps stored in the archive.
java -jar racooon.jar -a <archive> -f de.onyxbits.listmyapps,14,1
Is a way to simply download an app without searching for it (you have to know packagename, versioncode and offertype). Just in case someone wants an older version of something.
There also now is proxy support (but you don't really wanna use that, the -f option does a better job).
Minor request: If you build from source, please DON'T make your build available to the public. I really don't want to deal with support requests for software I don't know the version of.
onyxbits said:
The brave of heart will find some neat stuff in the development version:
java -jar racoon.jar -u -a <archive>
Will conveniently fetch the latest APKs for all the apps stored in the archive.
java -jar racooon.jar -a <archive> -f de.onyxbits.listmyapps,14,1
Is a way to simply download an app without searching for it (you have to know packagename, versioncode and offertype). Just in case someone wants an older version of something.
There also now is proxy support (but you don't really wanna use that, the -f option does a better job).
Minor request: If you build from source, please DON'T make your build available to the public. I really don't want to deal with support requests for software I don't know the version of.
Click to expand...
Click to collapse
Would you make GUI for this app?
edit
Got error:
Jun 07, 2014 7:14:49 PM java.util.prefs.WindowsPreferences <init>
WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0
x80000002. Windows RegCreateKeyEx(...) returned error code 5.
Click to expand...
Click to collapse
exodius48 said:
Would you make GUI for this app?
edit
Got error:
Click to expand...
Click to collapse
The app has a GUI (not a very pretty one atm, I have to admit). Your error is a windows problem. You'll have to use regedit to create the preferences key/allow access to it.
onyxbits said:
The app has a GUI (not a very pretty one atm, I have to admit). Your error is a windows problem. You'll have to use regedit to create the preferences key/allow access to it.
Click to expand...
Click to collapse
OK
How to solve my problem? Step by step please...
exodius48 said:
OK
How to solve my problem? Step by step please...
Click to expand...
Click to collapse
Try this:
http://stackoverflow.com/questions/...warning-could-not-open-create-prefs-root-node
onyxbits said:
Try this:
http://stackoverflow.com/questions/...warning-could-not-open-create-prefs-root-node
Click to expand...
Click to collapse
it works, thanks you.
Btw, what the meaning of <archieve>, should I write on cmd "<archieve>"?
exodius48 said:
it works, thanks you.
Btw, what the meaning of <archieve>, should I write on cmd "<archieve>"?
Click to expand...
Click to collapse
The archive is a directory. Think of it as your downloadfolder. It contains your credentials and subfolders for storing apps in multiple versions.
Teaser of the GUI for the upcoming v2.0 version. Thumbs up, thumbs down?
Issue: can't edit device id from user interface after first configuration.
scandiun said:
Issue: can't edit device id from user interface after first configuration.
Click to expand...
Click to collapse
got to your archive directory (normally Raccoon) and just edit the credentials.cfg file with the updated device ID.
scandiun said:
Issue: can't edit device id from user interface after first configuration.
Click to expand...
Click to collapse
As jdstrydom said: just edit credentials.cfg. There is no UI for it because you are not really meant to change your credentials after setting them up. Your archive represents your phone/tablet. Changing your Android ID is akin to doing a factory reset (at least as far as Google Play is concerned. It has no effect on your downloads).
Unless you really know what you are doing, it's best to use a throwaway account and go with the generated ID. The thing you should probably not do is to use your regular account with a generated ID.
onyxbits said:
As jdstrydom said: just edit credentials.cfg. There is no UI for it because you are not really meant to change your credentials after setting them up. Your archive represents your phone/tablet. Changing your Android ID is akin to doing a factory reset (at least as far as Google Play is concerned. It has no effect on your downloads).
Unless you really know what you are doing, it's best to use a throwaway account and go with the generated ID. The thing you should probably not do is to use your regular account with a generated ID.
Click to expand...
Click to collapse
I guess android id and device id are different things. As far as I am concerned, I can use any device id with my real account. Because some apps are only for phones and other only for tables so I need to switch between them.
scandiun said:
I guess android id and device id are different things. As far as I am concerned, I can use any device id with my real account. Because some apps are only for phones and other only for tables so I need to switch between them.
Click to expand...
Click to collapse
The Android id is what you get from dialing
*#*#8255#*#*
You should not edit credentials.cfg, though. The preferred solution is to use one archive per device.
after setting up when i search an app,it shows me no result.am i doing anything wrong?
Proud to present: Raccoon 2.0. Massive Changelog:
Reworked GUI (tons of tweaks).
Proxy support (you don't want to use this)
Open multiple archives at once
Automatically update whole archives
Commandline interface for scripting
Directly fetch APK files without searching (to get APPs that are excluded by search).
New directory layout
Now keeps a session log of downloads (for scripting)
Developer feature: hold SHIFT when pressing "Google Play" to see the raw search entry.
Mark apps that offer IAP
killoid said:
after setting up when i search an app,it shows me no result.am i doing anything wrong?
Click to expand...
Click to collapse
Try v2.0 and see if the problem persists.
onyxbits said:
Try v2.0 and see if the problem persists.
Click to expand...
Click to collapse
awsome! it worked now!
Edit: can u also include version no. in the application description plz?
I declare the wishlist for v2.1 open!
Currently I'm thinking: Archive browser with build in webserver and quick access via QR codes. Please discuss
This script creates a host file based on multiple host sources, with 2 levels of fallback. ie Mirrors, and last known good download
Code:
Your warranty is now void
I take no responsibility for any adverse effects to your phone or you love life
Do not apply / use this mod if you don;t understand it, or there is any risk for damage top your device or well being
YOU are responsible for what YOU do with YOUR own device, the personal information you share, and the processes you follow in regards to any suggestions, mods, or shortcuts offered here on Xda. Please be aware of the potential security and loss of privacy issues sharing information like this can produce.
Remember, each user is solely responsible for everything YOU do with YOUR device, and for the safe keeping of YOUR private information.
Requirements (for running on android)
rootbusybox (I have only tested with stericsons busybox)How to use.
NB: This script can be used on the device OR on LinuxTo run from AndroidFlash the install ZIP (or for Advanced users, extract the containing zip to your desired location, and change the config in "shared_constants.inc")Open a terminal and type
Code:
su;[/INDENT][/INDENT]
[INDENT][INDENT]sh /data/local/DiamondJohnHostManager/download_hosts.sh;
copy the /data/local/DiamondJohnHostManager/hosts file to /system/etc/hostsalternatively, I personally have actually symlinked the hosts file so I do not need to flip my system partition between r/w and r/o every time I wish to update my hosts file. (yes, I understand the risks of having a system file on a write-able partition)
Code:
FINAL_DEST=/data/local/DiamondJohnHostManager/hosts;
LINK=$(ls -l /system/etc/hosts | grep "-> $FINAL_DEST");
if [ "$LINK" == "" ]; then
$bb mount -o rw,remount /system;
if [ ! -f $FINAL_DEST ]; then
$bb echo "127.0.0.1 localhost" > $FINAL_DEST;
fi;
$bb ln -sf $FINAL_DEST /system/etc/hosts;
$bb mount -o ro,remount /system;
fi;
If you run the above successfully, every time you update the script, your live host file will be updated. On my phone it means I don't have to reboot after each update.
To run on Linux
Create the directorymkdir -p ~/android/DiamondJohnHostManager;expand the containing zip into the folderopen a terminalrun:
Code:
bash ~/android/DiamondJohnHostManager/download_hosts.sh;
Some of the features:
1. combines multiple hosts files. see/edit the contents of the file: /data/local/DiamondJohnHostManager/hosts-sources.txt2. You can edit which (see point 1)3. On linux, I had 110 host sources, and it generated a 98MB hosts file with over 3.4M lines/domains, in <8min4. It allows "fallback" host sources. ie mirrors in case the original source fails. Separate each mirror with a "|". NB: They don't actually have to be a "mirror", but can simply be an "alternative" if the previous one fails.5. You can have multiple mirrors/fallbacks6. If all the mirrors fail for a line item, it will then fallback to the last known successful downloaded host for that line7. handles multiple formats. Some of which:
Code:
[/INDENT][/INDENT]
[INDENT][INDENT]0.0.0.0 www.domainname1.com[/INDENT][/INDENT]
[INDENT][INDENT]127.0.0.1 www.domainname2.com[/INDENT][/INDENT]
[INDENT][INDENT]www.domainname3.com[/INDENT][/INDENT]
[INDENT][INDENT]
8. You can modify the whitelist and blacklist. NB: They are explicit hosts, not regex patterns ie no "*" in the domains.. Multiple files for each are supported; so you can logically group them.9. if a host is "wrongfully" blocked, you can check which source is the culprit. see the "previous" directory, and note the numbers relate to the host_sources.tct file, and start as the first line being 0 (commented lines are not counted)10. A log is provided in previous/DiamondJohnHostDownload_log.txt the top section is comma seperated and can be pasted into excel and converted to columns, The following section provides details on each individual download / source11. If you make ANY changes to the host_sources.txt file, all the previous become invalidated.Some FYI:
I Run with the default 5 hosts sources in the install zip, and it takes 100-120 seconds to updateTo monitor the end results/output, you can also use my other app TeMeFI https://forum.xda-developers.com/android/apps-games/app-temefi-comprehensive-documentation-t3806260you can find the method under: Various Ungrouped Extras>Hosts File Check
The following script is flashed from within recovery. You could also simply manually expand the zip contents to your desired location and edit the "shared_constants.inc" file appropriately
Download: 201901251428 DiamondJohn host download script installer.zip
XDA:DevDB Information
DiamondJohn Host Builder Script, Tool/Utility for all devices (see above for details)
Contributors
DiamondJohn
Version Information
Status: Stable
Current Stable Version: 201811281200
Stable Release Date: 2018-11-28
Created 2018-11-27
Last Updated 2020-05-14
Reserved
Reserved
New build!
New version. Reasonably minor changes. I test with 100+ hosts (on a Unix server), and one of the new ones wasn't downloading correctly in the previous version.
No need to uninstall previous version, simply7 flash the new one in TWRP. HOWEVER, if you are using a custom "host_source.txt", make a backup of your file first, as it will be overwritten. The file format will remain the same. It would possibly be prudent to also make backups of your blacklist and whitelist files as well, if you have modified them.:good:
See OP for download:
My personal host sources
This is an FYI, NOT a recommendation.
I have been using the following list of host sources probably since the last release. I have not noticed any ads, even when I forget to do it for a week or more. I have been holding off to see how long it would last, and its now been since 17 Jun 2019 of my last re-fresh/re-build. The following list creates a file of about 2.4MB with 72K lines, and takes < 2 minutes on my phone to build (quad core 2.3GHz 2GB Ram, 2013 S4, ie not a powerhouse by today's standards) I built the list way back based on the smaller file sizes which appeared to have a higher change of hosts; ie they seem to catch the latest/newer bad hosts. By using smaller file sizes, it also takes a short time to rebuild the hosts file.
I do not do any social media, so I also block sites like facebook and twitter in my black lists.
In the attached list, apart from "host_sources.txt", if it does not have "whitelist" in the title, I use it as a blacklist.
NB: The one labeled "stop_youtube_ads.txt" is not really to stop ads in youtube, but its one I found on line that does contain a list of advertising hosts.
Whoops....
Sorry, I must of accidentally deleted the install zip file from my DropBox account.
Sorry.
Its now updated and available for download in the OP :good:
https://forum.xda-developers.com/an...osts-diamondjohn-host-builder-script-t3872728
A way to run the script using a UI
It just occurred to me. I have another app that:
1. Makes it easy with a UI to execute the script.using a menu
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
2. Reports on details of your host file, including how old it is
3. Move common features into a quick and handy location
(see the first image)
The app is called TeMeFI:
https://forum.xda-developers.com/android/apps-games/app-temefi-comprehensive-documentation-t3806260
To set up the above, you need to:
1. Tell it where to find the script
This is done using a shell command (or you could manually edit it with a text file editor)
echo "/sdcard/TeMeFI/scripts,/data/local/DiamondJohnHostManager" > /sdcard/TeMeFI/.config/USER_SCRIPT_LOCATION;
Its basically a text file with a comma separated list of paths of where script files are placed.
But more on that later...
2. To view extra details regarding your host file, you can find that under the menu:
Various Ungrouped Extras>Host file check
3. Now, to place the lkast run script under the Favourites menu (which is straight ioff root, so you do not need to hunt and peck down the menbu, which will be more cumbersome for the running of the host building)
After you have run a method, if you click the menu button (hamburber on the far left), that opens the fly out menu, with the last icon on the far right being a pencil. If you LONG press the pencil, it will ask if you wish to save it as a favourite. Click Yes.
It will now appear under Favourites menu, however, it will be poorly named. Got to home (the home image in the fly-out menu) and then go into TeMeFI Configuration>Manage Favourites>Definition Details (Re-name)
Once in there, the method should appear at the top of the list (the only one if you just installed). Now, if you long press and select rename, you can Enter something like "Host File Check"
Next, we will take advantage of we did for number 2 above.
Go into Dynamic Lists>Run User Scripts
For me, I have a lot of scripts and paths that are searched, so my list os long. To filer it down, LONG CLICK the X icon on the far left (yes, the close button, but you long click it). This enables you to filter done the list (if yours is also long). Type in "download_host". This should get you down top a single menu item. Now, click on that, and it will rebuild your host file.
After running the script we will save this off as a favourite also, as above (long press the pencil icon)
Now go back into renaming as explained above, and call it something like "Rebuild host file"
So it could look something like the following. Note that my favourite list is pretty long, so you would only have the two items.
Two more settings but just for visual sake for my preference:
1. Set the toolbar to be at the bottom
TeMeFI Configuration>Default Startup Config>Toolbar at Bottom
2.Go to a dark green CRT screen
TeMeFI Configuration>Default Startup Config>Results Screen Colours>Green CRT Results Screen
updated the expired link in the OP for download. oops. sorry.
Why didn't anyone tell me?!
*delete*
ooops... realised the same info was one post up...
FYI:not that i have any "special" knowledge you don't, but my current hosts list is attached.
To take a closer look at this has been on my to do list since you mentioned it to me months ago. Thanks for the reminder on the other thread...