Dear Soylenters: What is a good programming language for doing custom processing/manipulation of digital video frames and digital audio data? The language/IDE shouldn't be too hard to setup or learn. It would be a plus if it executes reasonably fast. The language should allow easy reading & writing of video and audio files in common formats without requiring a commercial multimedia plugin or component. It would be nice if the language is available on both Windows and Mac OS.
Thanks in advance for any help or pointers,
Anonymous
This discussion has been archived.
No new comments can be posted.
Ask Soylent: Good Programming Language For Processing Video Frames And Audio Data With Code?
|
Log In/Create an Account
| Top
| 47 comments
| Search Discussion
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
(Score: 0, Funny) by Anonymous Coward on Saturday October 25 2014, @12:50PM
0x003a0090
0x81348092
(Score: 0) by Anonymous Coward on Saturday October 25 2014, @12:58PM
If speed is Your concern (and it probably should) - you can possibly play with only one language...
(Score: 0) by Anonymous Coward on Saturday October 25 2014, @01:16PM
C++ C++ C++
C++
C++ C++ C++
C++
And maybe C. But if you're using C, then you might as well just use C++ and get so many more features with almost no loss of performance.
(Score: 0) by Anonymous Coward on Saturday October 25 2014, @02:35PM
C++ has too much redundancy.
For proof, see parent's post.
(Score: 0) by Anonymous Coward on Saturday October 25 2014, @02:44PM
The grandparent's comment is written in English, not C++.
(Score: 2) by cafebabe on Saturday October 25 2014, @12:58PM
What are you trying to achieve? If you want to strip audio or make low resolution proxy files, ffmpeg is very good and requires no programming. However, it does require some fluency with a command line.
1702845791×2
(Score: 3, Interesting) by fliptop on Saturday October 25 2014, @01:11PM
I'll second this notion. I've used ffmpeg extensively to pull rtsp streams from IP cameras. One piece of advice I would offer: if you're pulling both video and audio, become familiar w/ the -itsoffset switch and how to map multiple streams because I've never encountered an IP camera that natively serves a synchronized rtsp stream. This guy's blog [wordpress.com] was helpful to me when I started.
Our Constitution was made only for a moral and religious people. It is wholly inadequate to the government of any other.
(Score: 2) by tonyPick on Saturday October 25 2014, @12:59PM
There's OpenCV
http://docs.opencv.org/ [opencv.org]
(Score: 0) by Anonymous Coward on Saturday October 25 2014, @01:24PM
Does OpenCV have anything to do with curriculum vitae?
(Score: 1) by Gertlex on Saturday October 25 2014, @02:31PM
No, you silly academic.
(Score: 2) by CRCulver on Saturday October 25 2014, @02:45PM
(Score: 1) by Gertlex on Saturday October 25 2014, @02:51PM
Ahh gotcha. Thanks for that tidbit. The European CV's I've seen have also been for academics generally, so never noticed that distinction.
(Score: 2) by maxwell demon on Saturday October 25 2014, @02:45PM
Yes: It almost certainly shows up in the CV of the maintainers.
The Tao of math: The numbers you can count are not the real numbers.
(Score: 0) by Anonymous Coward on Saturday October 25 2014, @07:23PM
Why the hell would you use computer vision software for processing digital video frames and digital audio data?!? God! I just hope we never cross paths in a professional setting. I guess the saying really is true: if all you have is a hammer, the entire world looks like nails.
(Score: 0) by Anonymous Coward on Saturday October 25 2014, @01:04PM
Dear AC,
Define 'custom processing'. Perhaps you should check out ffmpeg, mlt framework and sox (or libardour)? Bindings to programming languages other than C/C++ may or may not exist.
(Score: 0) by Anonymous Coward on Saturday October 25 2014, @01:14PM
If the question is, "What programming language should I use?", then the answer is always "C++".
(Score: 3, Funny) by maxwell demon on Saturday October 25 2014, @02:48PM
Let's see ...
"I want to write some web page enhancements running on the user's browser. What programming language should I use?"
The Tao of math: The numbers you can count are not the real numbers.
(Score: 0) by Anonymous Coward on Saturday October 25 2014, @02:55PM
You're still using C++. Firefox is written in C++. Chrome is written in C++. Safari is written in C++. Opera is written in C++. IE is written in C++. And those are the only browsers really used today.
(Score: 0) by Anonymous Coward on Saturday October 25 2014, @03:16PM
But the browser doesn't execute C++ code.
(Score: 0) by Anonymous Coward on Saturday October 25 2014, @03:25PM
JavaScript is just a shitty interface for interacting with the C++ code that makes up the browser. Every line of JavaScript is just text that tells the browser's C++ code to do something. Sometimes it triggers the C++ code that evaluates mathematical expressions. Sometimes it triggers the C++ code that stores a value. Sometimes it triggers the C++ code that manipulates the DOM that's implemented in C++. If you're using JavaScript, you're really just using C++. JavaScript is just a way that C++ offers for dumbasses to use C++ without expecting them to be smart enough to actually use C++ itself.
(Score: 0) by Anonymous Coward on Saturday October 25 2014, @03:49PM
And the C++ code is compiled into assembly language, which is assembled into the x86_64 instruction set, so we might as well say that everything on the Intel/AMD platform is written in x86_64 machine code.
(Score: 0) by Anonymous Coward on Saturday October 25 2014, @03:59PM
C++ is just a shitty interface for interacting with the C code that makes up the kernel and userspace lib.
(Score: 1) by DeKO on Saturday October 25 2014, @11:41PM
From my own experience, JavaScript makes some tasks so much harder that I wonder if, overall, JS programmers are just putting more effort into getting things done than a C++ programmer would.
(Score: 2) by Tork on Sunday October 26 2014, @05:25AM
Every line of JavaScript is just text that tells the browser's C++ code to do something.
So what you're saying is that somebody should write some C++ code to generate the JavaScript syntax needed to make the browser perform its task.
🏳️🌈 Proud Ally 🏳️🌈
(Score: 1) by evk on Saturday October 25 2014, @04:07PM
Nothing(?) runs C++ code, that why you have a compiler. In this case you'll probably want to compile to javascript.
(Score: 0) by Anonymous Coward on Saturday October 25 2014, @04:34PM
You mean Safari isn't written in Objective C or Swift?
(Score: 2) by meisterister on Sunday October 26 2014, @03:53AM
You shouldn't use a programming language. You should immediately stop, back away from the computer, and reconsider your life. Then when realizing that you were about to inflict the evil horrors of JavaScript on actual human beings, you should proceed to get psychiatric treatment. After this long and arduous process, during which you discover whatever childhood or other such trauma would cause you to do such a thing, you should proceed to learn how to do actual programming instead of slowing down the Internet for everyone.
Then you would use C++.
(May or may not have been) Posted from my K6-2, Athlon XP, or Pentium I/II/III.
(Score: -1, Flamebait) by Anonymous Coward on Saturday October 25 2014, @01:21PM
Have you checked out systemd yet? It does everything on my system: it boots it, it inits it, it corrupts the log files into some binary format, it runs GNOME 3, it runs GIMP, and I wouldn't be at all surprised if it does whatever it is that you need done, too.
(Score: -1, Flamebait) by Anonymous Coward on Saturday October 25 2014, @01:40PM
It is indeed a pity that systemd itself was never regarded as flamebait before being force-fed to everyone.
(Score: 0) by Anonymous Coward on Saturday October 25 2014, @01:55PM
As a great musician once sang,
(Score: 0) by Anonymous Coward on Saturday October 25 2014, @03:29PM
I tried systemd. Unfortunately it seems to be incompatible with pulseaudio.
(Score: 0) by Anonymous Coward on Saturday October 25 2014, @04:42PM
The dice decide my fate
Tell me about it. Half the time I login at the green site I get served this. [slashdot.org]
(Score: 2) by JNCF on Monday October 27 2014, @11:59PM
Ah, I see your problem. You're using the wrong URL. Try this one, [slashdot.org] or better yet, this one. [soylentnews.org]
(Score: 2) by Tork on Sunday October 26 2014, @05:27AM
It is indeed a pity that systemd itself was never regarded as flamebait before being force-fed to everyone.
It's funny watching somebody who likes to complain about systemd in non-relevant articles bitch about something being 'force-fed' to them.
🏳️🌈 Proud Ally 🏳️🌈
(Score: 2) by zeigerpuppy on Saturday October 25 2014, @02:23PM
As always, there's a trade of between speed and simplicity.
If you haven't used Max/MSP or Puredata, these are excellent
environments for real time audio/visual control.
Then you have Processing which is not quite as fast but bery flexible.
Finally, going lower level, try OpenCL or CUDA
(Score: 0) by Anonymous Coward on Saturday October 25 2014, @02:26PM
Or just use C++.
(Score: 0) by Anonymous Coward on Sunday October 26 2014, @02:20AM
You keep saying that, but nobody cares about your pet ego language.
(Score: 2) by Ken_g6 on Saturday October 25 2014, @03:08PM
It sounds like you're asking for AviSynth [avisynth.nl], a language specifically designed for manipulating video. Windows only, but really how many programming languages are there for Macs?
(Score: 0) by Anonymous Coward on Saturday October 25 2014, @04:45PM
Yeah, that is what I was thinking.
Is there anything else like avisynth out there for the unices?
(Score: 0) by Anonymous Coward on Saturday October 25 2014, @04:47PM
There's C++.
(Score: 2) by wonkey_monkey on Saturday October 25 2014, @05:18PM
I think VapourSynth, the Python-esque reimagining of Avisynth, runs on Linux. And that Avisynth itself runs under Wine.
systemd is Roko's Basilisk
(Score: 1) by Ken_g6 on Sunday October 26 2014, @04:07AM
There's something for *NIX called AvxSynth linked at that site, but I haven't tried it.
(Score: 2) by HiThere on Saturday October 25 2014, @06:26PM
Have you looked into Pure Data? Pd looks as if it is designed for that use, but I've never used it.
Javascript is what you use to allow unknown third parties to run software you have no idea about on your computer.
(Score: 0) by Anonymous Coward on Saturday October 25 2014, @07:30PM
C++ is another option.
(Score: 1) by FrogBlast on Saturday October 25 2014, @09:11PM
There's no real setup at all, it runs on every platform, it's designed primarily for graphics work, so modifying frames is easy. I used it a few years ago to render the frames for a game trailer and save the directly to an MP4 file. I didn't do audio in that project, but I once used it for realtime guitar distortion. If I can do it, anyone can.
(Score: 2) by fadrian on Saturday October 25 2014, @10:02PM
C and asm for where your loops need to be tight close to the metal. Whatever you want for whatever crappy UI you're going to have, because it's not that performance sensitive (unless whatever you're putting it on is underpowered - and it had better not be, if you're actually processing video and audio). Besides, it's going to be changing every three-to-five years for whatever fashion the platforms are chasing this time - so make it cheap to develop by using whatever kind of developer you can find easily at the time. By the time you need to revisit your language choice, you'll probably be re-examining your entire software base, anyway.
That is all.
(Score: 2) by TGV on Sunday October 26 2014, @08:08AM
Yes, that's the name: Processing. It's Java, but made a bit easier, and comes with a very nice library of image and sound processing functions. I've used it to read and analyze sound files, extract frequency spectra over time, and make an animation, moving a mask over an image based on changes in the frequency bins, all in 244 lines.
Check: https://processing.org/ [processing.org]