Hi,
I am trying to play an SD interlaced file out on a Blackmagic Decklink card but having troubles. I cannot get the following pipeline to link - gst-launch-1.0 uridecodebin uri=file:///Volumes/Video/race.mov ! autovideoconvert ! decklinkvideosink mode=3 If I deinterlace then interlace with uridecodebin uri=file:///Volumes/Video/race.mov ! deinterlace ! autovideoconvert ! interlace field-pattern=2:2 ! videoscale ! videorate ! decklinkvideosink mode=3 This works but if I add audio uridecodebin uri=file:///Volumes/Video/race.mov name=decoder decoder. ! deinterlace ! autovideoconvert ! interlace field-pattern=2:2 ! videoscale ! videorate ! decklinkvideosink mode=3 decoder. ! audioconvert ! decklinkaudiosink The audio plays at the correct speed and pitch but stutters as if half the samples are missing. What is the correct pipeline for playing interlaced files to a Decklink card in interlaced mode? My source files are DV in a QT container, also tried ProRes. Using pre-compiled binaries (v1.8) for OS X (Yosemite). As for HD, even the above trick does not work. Regards, Dave. _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
On Fr, 2016-05-20 at 21:30 +0930, Dave Johnstone wrote:
> Hi, > > I am trying to play an SD interlaced file out on a Blackmagic Decklink card but having troubles. I cannot get the following pipeline to link - > gst-launch-1.0 uridecodebin uri=file:///Volumes/Video/race.mov ! autovideoconvert ! decklinkvideosink mode=3 > If I deinterlace then interlace with > > uridecodebin uri=file:///Volumes/Video/race.mov ! deinterlace ! autovideoconvert ! interlace field-pattern=2:2 ! videoscale ! videorate ! decklinkvideosink mode=3 > > This works but if I add audio What are the caps the decoder is outputting? Is it marked as interlaced, why does linking fail exactly? That is, how are the caps incompatible? > uridecodebin uri=file:///Volumes/Video/race.mov name=decoder decoder. ! deinterlace ! autovideoconvert ! interlace field-pattern=2:2 ! videoscale ! videorate ! decklinkvideosink mode=3 decoder. ! audioconvert ! decklinkaudiosink > > The audio plays at the correct speed and pitch but stutters as if half the samples are missing. If you let the video go to a fakesink, and add a videotestsrc in front of decklinkvideosink, is the audio still stuttering? Is the audio also stuttering with other audio sinks? Which version of GStreamer and the decklink plugin are you using? > What is the correct pipeline for playing interlaced files to a Decklink card in interlaced mode? You should be able to pass through the interlaced video without deinterlacing/interlacing, assuming that it is correctly detected as interlaced content and the resolution and framerate is correct. > As for HD, even the above trick does not work. How does HD fail even more? -- Sebastian Dröge, Centricular Ltd · http://www.centricular.com _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel signature.asc (968 bytes) Download Attachment |
The video is decoded as:
video/x-raw format: Y42B
width: 720
height: 576 interlace-mode: mixed
pixel-aspect-ratio: 16/15 chroma-site: dv
colorimetry: bt601 framerate: 25/1 The interlace mode is detected as 'mixed'
not 'interleaved'. The pipeline errors with 'general
stream error, reason: not-negotiated'. I can't test the audio just now but the
GStreamer version is 1.8 from the pre-compiled OSX
packages, the decklink plugin is dated 2016-03-24.
On 23/05/2016 5:27 PM, Sebastian Dröge
wrote:
On Fr, 2016-05-20 at 21:30 +0930, Dave Johnstone wrote:Hi, I am trying to play an SD interlaced file out on a Blackmagic Decklink card but having troubles. I cannot get the following pipeline to link - gst-launch-1.0 uridecodebin uri=file:///Volumes/Video/race.mov ! autovideoconvert ! decklinkvideosink mode=3 If I deinterlace then interlace with uridecodebin uri=file:///Volumes/Video/race.mov ! deinterlace ! autovideoconvert ! interlace field-pattern=2:2 ! videoscale ! videorate ! decklinkvideosink mode=3 This works but if I add audioWhat are the caps the decoder is outputting? Is it marked as interlaced, why does linking fail exactly? That is, how are the caps incompatible?uridecodebin uri=file:///Volumes/Video/race.mov name=decoder decoder. ! deinterlace ! autovideoconvert ! interlace field-pattern=2:2 ! videoscale ! videorate ! decklinkvideosink mode=3 decoder. ! audioconvert ! decklinkaudiosink The audio plays at the correct speed and pitch but stutters as if half the samples are missing.If you let the video go to a fakesink, and add a videotestsrc in front of decklinkvideosink, is the audio still stuttering? Is the audio also stuttering with other audio sinks? Which version of GStreamer and the decklink plugin are you using?What is the correct pipeline for playing interlaced files to a Decklink card in interlaced mode?You should be able to pass through the interlaced video without deinterlacing/interlacing, assuming that it is correctly detected as interlaced content and the resolution and framerate is correct.As for HD, even the above trick does not work.How does HD fail even more? _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
On Mo, 2016-05-23 at 19:38 +0930, Dave Johnstone wrote:
> The video is decoded as: > > video/x-raw format: Y42B width: 720 height: 576 interlace-mode: mixed > pixel-aspect-ratio: 16/15 chroma-site: dv colorimetry: bt601 > framerate: 25/1 > The interlace mode is detected as 'mixed' not 'interleaved'. The > pipeline errors with 'general stream error, reason: not-negotiated'. > I can't test the audio just now but the GStreamer version is 1.8 from > the pre-compiled OSX packages, the decklink plugin is dated 2016-03- > 24. caps. It seems like there is no obvious way to know if ffmpeg outputs interlaced or mixed content, which would be needed to configure the caps properly. Can you file a bug, ideally with a sample file, here? https://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer Most likely you will get away with using a capssetter element and overriding the interlaced-mode=mixed field with interlaced- mode=interleaved. -- Sebastian Dröge, Centricular Ltd · http://www.centricular.com _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel signature.asc (968 bytes) Download Attachment |
The caps filter has no effect. It seems the uridecodebin always
outputs mixed or progressive when input files are interlaced. HD
1080/50i MJPEG and ProRes interlaced files in Quicktime or AVI
wrappers all need an interlace element to link to a Decklink card
for output. Although this can work it seems to add unnecessary
overhead and pipeline complication. The same codec in a mkv
container will not link at all. I will produce some (non-copyright)
test files and make them available when I file the bug. As this
issue occurs with multiple decoders and demuxers, should I file the
bug for uridecodebin? The same issue is observed when using
qtdemux, avidemux and jpegdec etc.
On 23/05/2016 7:50 PM, Sebastian Dröge wrote: On Mo, 2016-05-23 at 19:38 +0930, Dave Johnstone wrote:The video is decoded as: video/x-raw format: Y42B width: 720 height: 576 interlace-mode: mixed pixel-aspect-ratio: 16/15 chroma-site: dv colorimetry: bt601 framerate: 25/1 The interlace mode is detected as 'mixed' not 'interleaved'. The pipeline errors with 'general stream error, reason: not-negotiated'. I can't test the audio just now but the GStreamer version is 1.8 from the pre-compiled OSX packages, the decklink plugin is dated 2016-03- 24.Ok, that's because avdec_dvvideo will put interlace-mode=mixed on the caps. It seems like there is no obvious way to know if ffmpeg outputs interlaced or mixed content, which would be needed to configure the caps properly. Can you file a bug, ideally with a sample file, here? https://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer Most likely you will get away with using a capssetter element and overriding the interlaced-mode=mixed field with interlaced- mode=interleaved. _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
On Do, 2016-05-26 at 22:35 +0930, Dave Johnstone wrote:
> The caps filter has no effect. You need a capssetter, not capsfilter :) You need to override the caps, not filter them. > It seems the uridecodebin always outputs mixed or progressive when > input files are interlaced. HD 1080/50i MJPEG and ProRes interlaced > files in Quicktime or AVI wrappers all need an interlace element to > link to a Decklink card for output. That's because of avviddec not being able to distinguish between interleaved (interlaced) and mixed (interlaced). It always uses mixed as such, it is a superset of the other. We need to find a way for fixing that, or alternatively make decklinkvideosink handle mixed content. > Although this can work it seems to add unnecessary overhead and > pipeline complication. It will also degrade quality unfortunately :) > The same codec in a mkv container will not link at all. I will > produce some (non-copyright) test files and make them available when > I file the bug. As this issue occurs with multiple decoders and > demuxers, should I file the bug for uridecodebin? The same issue is > observed when using qtdemux, avidemux and jpegdec etc. It's unfortunately a bug per demuxer and/or decoder combination. -- Sebastian Dröge, Centricular Ltd · http://www.centricular.com _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel signature.asc (968 bytes) Download Attachment |
Free forum by Nabble | Edit this page |