Is there CRF available in NvEnc (Nvidia Video Codec SDK 7.1.9)? - h.264

I'm unable to find any mention of CRF in the NvEnc documentation and the Nvidia developer forum. There are quite a few speculations to be found online, in relation with ffmpeg (as in "doesn't seem to be supported"), but nothing really definite nor up-to-date. Can anybody shed some light on this? In case it really isn't supported, is there a technical reason or will it be added in the future?
Thanks!

crf (constant rate factor) is a video quality setting that only exists in x264 and x265. It is not part of the HEVC standard, so don't expect to find it in any other HEVC encoder.

Related

HEVC for decoding erroneous frame

I am trying to design a video transmission system for HEVC standard. I have installed and compiled HEVC with the help of (JCTVC HM Software Manual). The problem is that whenever I simulate the HEVC for decoding erroneous frames, the Decoder fails to operate/decode those frames, showing the message "Assertion 'binVal' failed". Could you please help me in solving this issue?
Well, legacy HM software does not support so-called packet-loss, like in JSVM (Scalable AVC).

Transcoding Audio/Video/Image file in Android Device

I am working on a chat application like whatsApp, I want to transcode media file before uploading to server,I have gone through so many links but not able to decide which method i should use, is there any straight forward way of transcoding in android ?
FFMPEG i found it is highly cpu intensive process ,it will consume more battery power
Media Codec i want to do the transcoding using mediacodec but not able to get proper steps to understand the process.
Best link to give idea about transcoding
Library to transcode using media codec (It has many bugs)
We used both implementation for our video editing app. Basically we used MediaCodec implementation if android version >= 4.3 and use FFMPEG otherwise.
The problem with using FFMPEG:
As you said, cpu intensive process thus consume more battery
x264 encoder is licensed under GPL, so you might want to use OpenH264 encoder instead which only support Baseline Profile, therefore video quality is not the best
Since it used software encoder, processing speed is relatively slow, at least compared to the MediaCodec implementation
MediaCodec also have some cons though, for example:
If you want to do transcoding, android version need to be >= 4.3 unless you want to deal with color format conversion yourself, which is completely mess, since each vendor may have it's own color format implementation. (Since 4.3, MediaCodec support encoding using input surface)
Hardware encoder may behave differently for different models. (For example some encoder may produces B frames which is not supported yet by android MediaMuxer, so you may want to use ffmpeg for the muxing part)
So I should say if you only support new android version, you should use mediacodec, but if you want to be safe (easier to write code that works on all device) and does not really mind the performance, use FFMPEG with OpenH264
Android's MediaCodec is a relatively better way to transcode on the client since it uses its own low level buffer processing. But then it doesn't provide elaborate tweaking freedom as FFMpeg does.
As to MediaCodec source code, it also is CPU intensive for holding the buffers and processing them but its actually way lesser than FFmpeg.

Adobe Alchemy and Llvm 2.5

A comment on the Adobe Alchemy mailing list suggests it is possible to get Alchemy working with Llvm 2.7 (instead of 2.1 in the Alchemy download).
Does anyone know if this is true and if so any tips on how to go about it?
UPDATE: the thread is here and it seems i read it wrong. I missed that the op is the developer of Alchemy talking about an internal Adobe version. I would love an update!
I've tried getting LLVM upgraded (see this thread). The short answer is that I don't think you can. The newer LLVMs output a different kind of intermediate opcodes, which the Alchemy backend plugin doesn't expect.

Decoding Audio / Audio Playback (AS3)

I'm interested in learning how to decode and playback audio in ActionScript 3. I understand how to write bytes to a Sound object using the SAMPLE_DATA event, so that's not really a problem. What I want to understand is how I could implement alternate audio formats for native playback inside of Flash Player.
I guess what I'm asking is: how do I take something in X format and "convert/decode" it to WAV format and write the bytes to a Sound object, playing back the audio? I'm interested in writing a decoder for FLAC audio and possibly OGG audio, as these seem to be some of the most widely used open source audio formats.
Can anyone give me any advice on this?
If you want to write a decoder, the first thing you should probably look at is the spec for the format you want to decode.
The ogg/vorbis spec can be found here: http://xiph.org/vorbis/doc/Vorbis_I_spec.html.
Also, it could be of help to take a look (or maybe port) some other open source library that already does this (I'm not aware of any written in Actionscript), such as this, in Java: http://www.jcraft.com/jorbis/ (I don't know this library, I've just found it googling "ogg vorbis open source".
At any rate, you'll have to put some work to get it working and I don't mean this to discourage you, but I'm not sure Actionscript is fast enough for real time audio decoding.
You can try, but you're not going to have much grunt left to do other stuff. Prior to Flash 10, I wrote an article detailing a hack to feed PCM data into sound output in Flash. Someone got in touch because they had written an AS3 Ogg decoder, but... even after fully optimzing the code, it was found that AVM2 is really not that much up to the job. Basically, it's rather slow and decoding OGG is quite processor intensive. I can't see that things will have changed that much in the years since, because CPUs have become "wider" and not really that much faster. ActionScript is single threaded, so you can't offload to another core.
Probably worth checking out this... maybe performance has improved.
EDIT: Having said all that, as Juan has said, don't be discouraged by this answer. I suspect the computational demands of FLAC decoding are probably considerably less than OGG, and if DSP gets you excited, taking the time to figure all this stuff out is 100% worth it, even if the Flash route (possibly) leads to disappointment. Personally I think that the MediaStreamSource for Silverlight looks really promising,but haven't really dabbled that much.

Soundtouch class not working now

There is great library for realtime pith shifting https://github.com/also/soundtouch-as3
If was work fine until Jule 2015 (at this time was discovered another Adobe Flash Player zero-day (assigned with CVE number, CVE-2015-5123))
Is there anybody successfully use this library? I can't debug this ... because of I know AS3 not so well, maybe anybody know the reason of this
it's not an solution to this but after a similar issue I ended up using the Sonoport libraries instead. They're worth checking out as have some cutting edge algorithms and do realtime manipulation of pitch / rate etc.
www.sonoport.com
I've made the swc available here as it looks like their downloads aren't currently available