#1782 closed defect (fixed)
telecine filter does not work for bit-depth > 8
Reported by: | dave rice | Owned by: | |
---|---|---|---|
Priority: | normal | Component: | avfilter |
Version: | git-master | Keywords: | pulldown mpfilter |
Cc: | Blocked By: | ||
Blocking: | Reproduced by developer: | yes | |
Analyzed by developer: | no |
Description
I need to convert 24000/1001 fps video to 30000/1001 fps. Currently using -r or the fps filter, frames are duplicated to achieve the requested rate which results in jittery playback. I propose a pulldown filter which could duplicate fields (according to 3:2 pulldown http://en.wikipedia.org/wiki/Three-two_pull_down) to proper a smoother result.
Change History (8)
comment:1 by , 12 years ago
Keywords: | pulldown added |
---|---|
Type: | enhancement → defect |
Version: | unspecified → git-master |
comment:2 by , 12 years ago
Thanks @cehoyos. This looks close. I see the extra frames are added through interlaced fields in the 3:2 pulldown pattern; however there is a problem with the chroma. In my initial test the right side of the image is turned b&w and the chroma data on the left side is wrong.
comment:3 by , 12 years ago
Please provide your command line together with complete, uncut console output.
follow-up: 5 comment:4 by , 12 years ago
So the error that I described before only occurs on one particular files. Others worked fine. Here is the output for the files with the chroma error output.
ffmpeg -i 2398.avi -vf 'mp=telecine,setpts=N/(30000/1001*TB)' -r 30000/1001 -qscale 2 -c:v v210 -y 2997.avi ffmpeg version 1.0.git Copyright (c) 2000-2012 the FFmpeg developers built on Oct 3 2012 19:31:08 with Apple clang version 3.1 (tags/Apple/clang-318.0.58) (based on LLVM 3.1svn) configuration: --prefix=/usr/local/Cellar/ffmpeg/HEAD --enable-shared --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --cc=cc --host-cflags= --host-ldflags= --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libxvid --enable-ffplay libavutil 51. 73.101 / 51. 73.101 libavcodec 54. 63.100 / 54. 63.100 libavformat 54. 29.105 / 54. 29.105 libavdevice 54. 3.100 / 54. 3.100 libavfilter 3. 19.102 / 3. 19.102 libswscale 2. 1.101 / 2. 1.101 libswresample 0. 16.100 / 0. 16.100 libpostproc 52. 1.100 / 52. 1.100 Input #0, avi, from '2398.avi': Metadata: encoder : Lavf54.29.105 Duration: 00:01:00.02, start: 0.000000, bitrate: 148913 kb/s Stream #0:0: Video: v210 (v210 / 0x30313276), yuv422p10le, 720x404, 23.98 tbr, 23.98 tbn, 23.98 tbc Stream #0:1: Audio: mp3 (U[0][0][0] / 0x0055), 48000 Hz, stereo, s16, 128 kb/s Please use -q:a or -q:v, -qscale is ambiguous [Parsed_mp_0 @ 0x7ff670c19fc0] 'telecine' is a wrapped MPlayer filter (libmpcodecs). This filter may be removed once it has been ported to a native libavfilter. Output #0, avi, to '2997.avi': Metadata: ISFT : Lavf54.29.105 Stream #0:0: Video: v210 (v210 / 0x30313276), yuv422p10le, 720x404, q=2-31, 200 kb/s, 29.97 tbn, 29.97 tbc Stream #0:1: Audio: mp3 (U[0][0][0] / 0x0055), 48000 Hz, stereo, s16 Stream mapping: Stream #0:0 -> #0:0 (v210 -> v210) Stream #0:1 -> #0:1 (mp3 -> libmp3lame) Press [q] to stop, [?] for help frame= 1798 fps=5.9 q=0.0 Lsize= 1363052kB time=00:01:00.02 bitrate=186027.6kbits/s video:1361985kB audio:938kB subtitle:0 global headers:0kB muxing overhead 0.009444%
The output doesn't seem to provide many hints. I'll see if I can replicate this on a shareable input file.
comment:5 by , 12 years ago
Reproduced by developer: | set |
---|---|
Status: | new → open |
Summary: | pulldown filter → telecine filter does not work for bit-depth > 8 |
Replying to dericed:
The output doesn't seem to provide many hints.
I disagree...
The telecine filter currently does not work correctly if bit-depth > 8 bit (it works correctly if all mpi->w and mpi->chroma_width get multiplied by 2 in libavfilter/libmpcodecs/vf_telecine.c).
comment:6 by , 12 years ago
Keywords: | mpfilter added |
---|
comment:7 by , 12 years ago
Resolution: | → fixed |
---|---|
Status: | open → closed |
Should be fixed for yuv formats with bit-depth > 8.
comment:8 by , 12 years ago
A native telecine filter was committed to FFmpeg today, it supports many pix_fmts more than the wrapped MPlayer filter.
Could you test the following command line?