There's a way to do similar encode with staxRip?
I tried with x264 and Nvenc but no one allows fps lower than 19
Maybe I can do that with command line?
I need low fps and bit rate, since the picture is static full quality is expected...Code:General Complete name : low_fps.mp4 Format : MPEG-4 Format profile : Base Media / Version 2 Codec ID : mp42 (mp42/isom/avc1) File size : 6.75 MiB Duration : 6 min 38 s Overall bit rate mode : Variable Overall bit rate : 142 kb/s Video ID : 1 Format : AVC Format/Info : Advanced Video Codec Format profile : High@L5.1 Format settings : CABAC / 16 Ref Frames Format settings, CABAC : Yes Format settings, ReFrames : 16 frames Codec ID : avc1 Codec ID/Info : Advanced Video Coding Duration : 6 min 38 s Bit rate mode : Variable Bit rate : 12.6 kb/s Nominal bit rate : 10 000 b/s Maximum bit rate : 13.0 kb/s Width : 1 920 pixels Height : 1 080 pixels Display aspect ratio : 16:9 Frame rate mode : Variable Frame rate : 1.003 FPS Minimum frame rate : 1.000 FPS Maximum frame rate : 16 384.000 FPS Original frame rate : 1.000 FPS Standard : NTSC Color space : YUV Chroma subsampling : 4:2:0 Bit depth : 8 bits Scan type : Progressive Bits/(Pixel*Frame) : 0.006 Stream size : 612 KiB (9%) Writing library : x264 core 114 Encoding settings : cabac=1 / ref=16 / deblock=1:0:0 / analyse=0x3:0x113 / me=hex / subme=7 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=1 / 8x8dct=1 / cqm=2 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-4 / threads=12 / sliced_threads=0 / slices=1 / nr=0 / decimate=1 / interlaced=0 / constrained_intra=0 / bframes=0 / weightp=2 / keyint=500 / keyint_min=1 / scenecut=40 / intra_refresh=0 / rc_lookahead=40 / rc=2pass / mbtree=1 / bitrate=10 / ratetol=1.0 / qcomp=0.60 / qpmin=5 / qpmax=69 / qpstep=4 / cplxblur=20.0 / qblur=0.5 / vbv_maxrate=13 / vbv_bufsize=300000 / nal_hrd=vbr / ip_ratio=1.40 / aq=1:1.00 Color range : Limited Codec configuration box : avcC Audio ID : 2 Format : AAC LC Format/Info : Advanced Audio Codec Low Complexity Codec ID : mp4a-40-2 Duration : 6 min 38 s Bit rate mode : Variable Bit rate : 128 kb/s Maximum bit rate : 529 kb/s Channel(s) : 2 channels Channel layout : L R Sampling rate : 44.1 kHz Frame rate : 43.066 FPS (1024 SPF) Compression mode : Lossy Stream size : 6.08 MiB (90%)
On attachments has a sample, thanks in advance!Code:Bit rate : 12.6 kb/s Nominal bit rate : 10 000 b/s Maximum bit rate : 13.0 kb/s Frame rate mode : Variable Frame rate : 1.003 FPS Minimum frame rate : 1.000 FPS Maximum frame rate : 16 384.000 FPS Original frame rate : 1.000 FPS
+ Reply to Thread
Results 1 to 11 of 11
It's easy enough to do using AviSynth. Since StaxRip uses AviSynth, it should be easy to do in that as well:
Using ImageSource, you give a name to the picture
Using ConvertToYV12 you set the colorspace common to almost all videos
The 'End' setting tells for how many frames the picture is to remain. The framerate is set for 1 so if End=100, the picture will last for 101 seconds. Avisynth counting begins with zero. You can probably replace the script StaxRip gives you with that line. Or use something, like RipBot64, which won't have any problems with that script. Be sure and test out your script in VDub before doing the encode. Once open in VDub, go File->File Information to get information about the video, including how long it'll last.
If using RipBot64 or other encoders, add your audio separately (WAV audio preferred)
"low_fps.mp4" sample file is 99% 1 fps. There's only one frame that's irregularly timed (bug in muxer?) so MediaInfo reports a high Maximum frame rate. Compression wise this shouldn't make any difference at all.
[stts: Decoding Time to Sample Box] position = 7007085 size = 40 version = 0 flags = 0x000000 entry_count = 3 entry sample_count = 255 sample_delta = 16384 entry sample_count = 1 sample_delta = 1 entry sample_count = 143 sample_delta = 16384
Worked like a charm!
The size is bit bigger, but that's because I used a 2k image and a bigger bitrate!
Maybe using two pass I can use lower bitrate, but I couldn't set this using Nvenc, I tried with x264 but did not worked :/
Thanks a lot
Your sample used keyint 500, but there's only around 400 frames. That means the first frame is a keyframe, no other frames are keyframes, and seeking is very slow. Maybe you should set keyint to something smaller, such as keyint 1, so there's a new keyframe added every second.
Why such a low frame rate? And why variable? I ask as I'm new to the thread and may have missed something.
The only way I know of to make something VFR when encoding with Avisynth is to create a timecodes file and add it to the command line for x264 to play with. Failing that you can encode at some constant rate and add the timecodes file when muxing.
A basic timecodes file looks like this. The default frame rate is 59.94fps in this case. The frames that go by at a different speed need to be specified. It's similar to using Trim() to specify a range of frames.
# timecode format v1
0, 763, 23.9760240
85902, 87156, 23.9760240
To add the timecodes file to the x264 command line:
You can, of course, extract the existing timecodes from MKV source files and use them when re-encoding.
The goal is to have the "video" part of the stream be as small as possible, as it simply serves as a backdrop for the audio. Changing fps to 1, increasing the key frame interval, and changing the bitrate to variable should all help in accomplishing this goal.
I thought I heard something a while back about YouTube being "smart" enough to handle an "audio with image backdrop" file so that it only displayed the image as it it was showing a picture, and then played the audio stream. This would make the "video" portion of the stream only take up as much space as the file size of the picture. Although it wouldn't be a video file as we know it...
Last edited by greymalkin; 14th Sep 2019 at 11:14.
Staxrip lets you change the AviSynth script it uses. So you can add ChangeFPS(1.0, linear=false) and set the x264 encoder to quality mode or bitrate mode with a low bitrate. That will give you a 1 fps video with the default GOP size of 250 and a low bitrate. You can go with lower frame rates too. For example, ChangeFPS(0.01, linear=false) will give you 1/100 fps. I don't know if youtube can deal with such low frame rates.
Thanks in advance for the support guys!
Right now I had a idea to change motion search estimation, maybe can it can help...