Hi, I'm unable to use vapoursynth because I get two problems. I've not been successful getting audio muxed into the final encode without a progressive sync problem. I don't think it's a strictly mux problem because I've muxed various ways and get the exact same behavior. Also, using vapoursynth, I'm forced to do a resize to get the correct AR, which using ffmpeg is unnecessary. What's causing this?
vapoursynth script:
Quote:
from vapoursynth import core
video = core.ffms2.Source(source='<foo.mkv>')
# just use a small bit for filter testing
#video = video[0:1800]
# dot-crawl/rainbow elimination
#video = core.tcomb.TComb(video)
# deinterlace
video = core.tdm.TDeintMod(video, 1)
# denoise
# crop
video = core.std.CropAbs(video,704,464,6,10)
video = core.resize.Bicubic(video, 720, 540)
video.set_output()
|
and finish up with this cmdline followed by audio mux:
Quote:
vspipe --y4m <foo.vpy> - | ffmpeg -i pipe: -c:v libx265 -preset veryslow -crf 20 -vf "nlmeans=s=10" -y "outfoo.mkv"
|
ffmpeg commandline that works fine, but lacks comb filter
Quote:
VCODEC="-c:v libx265 -preset veryslow -crf 20"
FCHAIN='-vf "yadif,nlmeans=s=10,crop=704:464:6:10"'
ffmpeg -i "<foo.mkv>" $VCODEC -c:a copy $FCHAIN -y "<outfoo.mkv>"
|
[edit]
extra info regarding AR problem. If I use the vapoursynth script above, commenting out the crop+resize and issue this command:
Quote:
vspipe --y4m <foo.vpy> - | ffplay -i pipe:
|
I get the wrong AR compared to just:
and this output from the vpy script on the cmdline:
Quote:
Input #0, yuv4mpegpipe, from 'pipe:':B vq= 0KB sq= 0B f=0/0
Duration: N/A, start: 0.000000, bitrate: N/A
Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p(progressive), 720x540, 29.64 fps, 29.64 tbr, 29.64 tbn, 29.64 tbc
^C 2.87 M-V: -0.033 fd= 1 aq= 0KB vq=15380KB sq= 0B f=0/0
|
I don't really understand what it's telling me, but I'm guessing the pipe causes some kind of loss of stream info that the player needs to show it properly.