Any solution to convert .yuv file to h264 file on Mac? - macos

I want to develop an app for mac which can record the current screen.But now I have trouble on not knowing how to encode .yuv file I got from CGImage.Somebody told me to encode with x264 or ffmpeg,I am not sure if these are the right choice for OS X development.If anyone has any experience in doing this,I really appreciate that you could tell me.Thanks.

x264 is a great library and I highly recommend it. On mac you also have the option to use the built in encoder. Part of AVFramwork I believe. It should uses less power and CPU then x264, but produce slightly larger files.

x264 is probably one of the best encoders out there for your job. You can get it here.
For a more detail usage of all the commands, such as quality setting and fps, you can find it here.

Related

How to write into a MP4 container with Cocoa?

I need to export an MP4 file containing several streams of audio. There is no video at all at this point in time, though this might be requested sometimes in the future.
All this is on the Mac running a decently recent version of Mac OS X. QT Kit is not an option. Portability to iOS would be a bonus.
Where should I look? A very casual look at AV Foundation suggests this might be a way, but doesn't look simple at all.
Or should I rather look for a third party library? ffmpeg? mp4v2?
Thanks for any suggestion.

How can I record voice from microphone in wave format in windows RT?

I was able to get the file in mp3 and wma format. But I need wave format.
I know this seems a bit twisted, but can't you install an audio-conversion software (or implement one, if the algorithm isn't too complex)?
Also, I'm not really familiar with this, but I've heard talk about MediaEngine for WinRT, if you don't know about it it might be worth looking into.

Playing video in Qt (on a Mac)

This question arises out of a combination of this being my first time working with video and unfamiliarity with Macs. Basically I'm finding it difficult to figure out how to play a video (within a QWidget, or otherwise) using any standard format, e.g. avi, mpeg, mov, etc. In particular,
QMovie::supportedFormats() gives me only .gif and .mng, but I need to use standard formats. Is there a way to increase the number of supported formats?
Phonon requires the presence of a 'backend' which the user has to implement himself. I looked to see if I could somehow do this with Quicktime, but I couldn't get the application to launch--and anyway I didn't really see how to do that. Also, Phonon looks pretty heavyweight, I'd like to avoid it if I could.
While there are plenty of avi (et al.) players floating around on the web, I think it's probably unlikely I'd be able to use them--I need to start, stop, and change the playback speed of videos programmatically i.e. through my C++ program.
I'm not sure why this should be so hard--working with images in Qt is a snap by comparison. So: What's a good way to play videos from within a C++/Qt program?
Stop what you are doing right now: Phonon is the past, Qt Mobility is the future.
After you download, compile and install Qt Mobility, check the examples: videowidget and videographicsitem, located at: qt-mobility-opensource-src-1.2.0/examples/
They pretty much answer all your questions.

programmatically recording sound sent to Built-in Output, Mac OS X

I have a conundrum:
I need to find a way to capture the raw audio data that is being piped to the Built-in Output on Mac OS X. Core Audio, HAL, etc.
I can "listen" in on the Built-in Output and the mic, but neither of these appear to offer the correct data stream - the exact stream (all combined data from all input sources) that goes to the speakers/built-in output.
Any advice is welcomed with appreciation.
maybe you should have a look at the Jack source code...
http://sourceforge.net/projects/jackosx
Do you need to access to that stream from your program, or do you just want to rip audio from it? In the second case, a quick Google search turned up http://www.ambrosiasw.com/utilities/wiretap/ and http://www.rogueamoeba.com/audiohijackpro/. None of those are open-source or free though.
Edit -- whoops, you want to access to programmatically, that answers my own question, sorry. I think I'll keep my answer here in case some folks stumbles upon this page wanting to record audio non-programmatically.
You need will need your app to install a system extension.
Soundflower is an open-source implementation of such an extension.

Which video and audio format/codec should I use?

Environment: Windows XP/Vista, VS2008, C#/.NET 2.0, VideoGrabber.
Hi All,
I'm writing an app which captures cameras input and encodes them into a movie file (including sound).
My client suggests I encode the movie using the DivX codec. But it's not installed by default and it's not redistributable: Users would have to download, install and configure it themselves.
Is there a Codec available in default Windows (XP+) installations that I could use to encode video and sound? It must support compression. Ideally, I should be able to programmatically set basic configuration.
Note: I read this question but it doesn't actually address my needs.
TIA,
Is there a Codec available in default Windows (XP+) installations that I could use to encode video and sound?
About the best you can hope for is WMV2 (WMV v8). You may be able to encode it using qasf.dll.
The codecs you get for AVI in XP are all woeful efforts from the early days of ‘Multimedia PCs’: things like Cinepak and RLE, which are of zero use for modern full colour/resolution video, and Intel 4:2:0, which is only chroma subsampling, not really actual video compression.
If you need better than that you'll have to start embedding your own codecs, eg. from ffmpeg.
But it's not installed by default and it's not redistributable: Users would have to download, install and configure it themselves.
That's best anyway. Silently installing codecs onto a system is rather antisocial as there are often clashes between them and you could end up messing up other DirectShow applications. For example there are (at least) three different common DirectShow codecs that can handle “DivX” (which is really nothing more than MPEG-4 Advanced Simple Profile video plus MP3 audio in an AVI container): DivX, Xvid and ffdshow. Having more than one installed can be a recipe for bugs.
Not sure how useful this is to you, but I was trying to answer that very question just recently. This article suggests DIB, I420, or IYUV are supported on all platforms... at least in OpenCV. I had the least trouble with I420.

Resources