I'm sorry, but I don't understand what you're trying to ask of me. Are you trying to tell me to remove that option because I didn't write the algorithm myself? Are you trying to tell me that i should give the user the option to flag certain frames during live encoding as reference frames? Or are you trying to tell me that I should override the AMF behaviour (which is pretty good already IMO) in favor of my own?Do you have your own algorithm to override? Or you can override? Because, OBS Studio also can override some options but features not implemented for long.
As I see, that was named "LTR" has no influence on encoding as it's only a feature of AMF - it allows to switch on (override) reference assignments - switcher for the feature to turn it ON/OFF, but the feature (custom assignment by some algorithm maybe) not implemented yet?
This meaning of "Feature" (for AMF based encoder plugin) is it right for MaxLTR? Because abbreviation of the the word has "Reference" and I can translate it according to the H.264, but I feel that isn't right and the parameter itself hasn't influence on the references itself (by current implementation of the plugin). But it can switch something related to the references frames.
So, I'm asking for two things (first can improve translation, second - saves time for translation):
- If this has influence on references, then we need it in description, because "References" mentioned by the name.
- If feature not implemented yet, you better to disable it or remove (I understand you can use it for future implementations, but I don't like empty switch for now).
- You think encoder cannot use LTR when MaxOfLTRFrames=0 on cards without B-Pictures support?
- And all your footage with this encoder has 0 LTR frames when MaxOfLTRFrames=0?
Widespread Support; HEVC is supported in every 2015+, smartphone to desktop device.HEVC support depends on multiple factors:
So it depends on the following: A new streaming Protocol, Device Vendors (especially mobile devices), Streaming sites, OBS Studio and AMD. Support for HEVC is technically already built into the plugin, so there's not much to do there.
- Widespread Support
HEVC/H.265 is currently less supported by the mobile market than VP9 is and it will probably be another 5 years until it makes a mainstream appearance. Same thing happened with AVC/H.264.- Better Streaming Protocols
FLV/RTMP currently only support AVC/H.264, until that changes HEVC/H.265 won't get any good support from Streaming sites or similar. The largest ones here are probably Twitch and YouTube which would have to be the first ones to switch over.- OBS Studio needs to support H.265
I'm not sure if it already does, since it uses ffmpeg for muxing.
- Driver Support
HEVC encoding is already there if you decide to use Windows Media Foundation Transcode - one of the worst options ever because it's rather undocumented and weird. Right now, HEVC does not seem to be supported yet by AMF, so there is only so much that can be done on my end.
At a bitrate of 2500, it's better to use x264. Hardware encoding will probably take a long time before it gets better at what it should be good at.
echo off
title Stream Test
MODE CON COLS=1280 LINES=720
:begin
echo %random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%
echo %random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%
echo %random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%
echo %random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%
echo %random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%
echo %random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%
echo %random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%
echo %random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%
echo %random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%
echo %random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%
echo %random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%
echo %random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%
echo %random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%
echo %random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%
echo %random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%
goto :begin
got a weird bug.
for some reason the encoder goes nuts when there's too much stuff around and i can't figure out what setting might be causing it. i've tried literally every single one of them.
the bug in action: https://youtu.be/OGRWw3oGpV8?t=230
forcing it hardcore: https://gaming.youtube.com/watch?v=JolwzJucI7k (gaming link because on regular it fails to process)
the hardcore forcing happened via a batch file of this code:
Radeon Crimson version 16.10.3
tell me if there's more that you need to know that's not in the log.
22:32:18.671: [AMF Encoder] <AMFEncoder::H264Interface::H264Interface> Initializing...
22:32:18.681: [AMF Encoder] Minimum: 18
22:32:18.681: [AMF Encoder] Maximum: 35
22:32:18.681: [AMF Encoder] GOP Size: 30 frames
22:32:18.681: [AMF Encoder] CABAC: Enabled
i'm sorry. you're a god. tried resetting them one by one, which obiously couldnt help...Change those to their defaults and Min/Max QP to 0/51 and you should see wonders happening.
You'd have known all this if you read the https://github.com/Xaymar/obs-studio_amf-encoder-plugin/wiki/Troubleshooting-Guide.
I have one more question (about encoder development, code)
Sorry for the question in this thread. If I were programmer I would make a new thread in other part of the forum. But as any amateur, just wondering how it works. And all this because of VBV Strictness translation ^_^can you explain how this works:
double_t interpVal = (sin(min(max(strictness, 1.0), 0.0) * 90 * (PI / 180))); ?
I not familiar with c++ a lot, so I'm interesting in this part -->> min(max(strictness, 1.0), 0.0)
Or strictness can take negative values and all thing is right? I assume, that max returns the largest of a and b. And min returns the smallest of a and b.