#15 Inefficient (no?) seeking in RAW vids

open
nobody
None
5
2006-10-04
2006-10-04
Cinquero
No

I'm using mplayer 1.0pre8 with the command

mencoder tv:// -tv
driver=v4l2:width=720:height=576:outfmt=yv12:\ device=/dev/video0:norm=pal:input=1:amode=1:alsa:adevice=default:forceaudio:audiorate=48000
\ -oac pcm -ovc raw -rawvideo format=yv12 -of avi -vf
harddup \ -o $(date +%Y%m%d%H%M).avi -endpos 00:40:00

to produce raw video dumps in YV12 format. After that,
I try to edit the dumped data by using the current cvs
version of jashakafx plus the current cvs versions of
mlt/mlt++/ffmpeg. ffplay does properly seek within the
dumped avi file.

However, jahshakafx does not efficiently handle these
raw video files: if one has them on the jahshaka
desktop, startup time is a few minutes because
jahshajafx seemingly reads way too large portions of
the raw video.

Discussion

1 2 > >> (Page 1 of 2)
  • Charles Yates
    Charles Yates
    2006-10-04

    Logged In: YES
    user_id=180811

    A bit confused - your last message seemed to indicate that
    all was well with the rawvideo avi's.

    My test cases here work perfectly - to generate stuff, I've
    used:

    ffmpeg -i input.avi -f avi -vcodec rawvideo output.avi

    Seeking is frame perfect on PAL sources at least. Could you
    try converting the mencoder output with:

    ffmpeg -i input.avi -f avi -vcodec copy -acodec copy output.avi

    and then loading the output.avi in jah?

     
  • Cinquero
    Cinquero
    2006-10-04

    Logged In: YES
    user_id=1018844

    It seems like jahshaka does not seek but reads the whole
    video up to the position indicated by the little play bar
    inside the video preview on the desktop. When I seek within
    that preview, I always get the same (greenish) preview
    picture when seeking to an earlier position, and it starts
    to heavily read the vid when seeking to a later position.

     
  • Cinquero
    Cinquero
    2006-10-04

    Logged In: YES
    user_id=1018844

    Loading works, but it seemingly tries to seek beyond the
    video's limits. The following backtrace is issued when I
    seek to the beginning or to the end inside the desktop preview.

    (gdb) bt
    #0 yuv420p_to_yuv422 (dst=0xbfa4e740, src=0x8863270,
    width=-1285220920, height=-1285222360) at imgconvert.c:1090
    #1 0xb3de6ea3 in img_convert (dst=0xbfa4e740,
    dst_pix_fmt=1, src=0x8863270, src_pix_fmt=720,
    src_width=720, src_height=576)
    at imgconvert.c:2227
    #2 0xb52b374d in producer_get_image (frame=0x88629a8,
    buffer=0xbfa4ec28, format=0xbfa4ec84, width=0xbfa4e924,
    height=0xbfa4e928,
    writable=1) at producer_avformat.c:376
    #3 0xb7ebd7d8 in mlt_frame_get_image (this=0x88629a8,
    buffer=0xbfa4ec28, format=0xbfa4ec84, width=0xbfa4e924,
    height=0xbfa4e928,
    writable=1) at mlt_frame.c:271
    #4 0xb52a3c6f in filter_get_image (this=0x88629a8,
    image=0xbfa4ec28, format=0xbfa4ec84, width=0xbfa4e924,
    height=0xbfa4e928,
    writable=-1079710588) at filter_deinterlace.c:92
    #5 0xb7ebd7d8 in mlt_frame_get_image (this=0x88629a8,
    buffer=0xbfa4ec28, format=0xbfa4ec84, width=0xbfa4e924,
    height=0xbfa4e928,
    writable=1) at mlt_frame.c:271
    #6 0xb5264cab in filter_get_image (this=0x88629a8,
    image=0xbfa4ec28, format=0xbfa4ec84, width=0xbfa4e9f0,
    height=0xbfa4e9f4,
    writable=1) at filter_rescale.c:199
    #7 0xb7ebd7d8 in mlt_frame_get_image (this=0x88629a8,
    buffer=0xbfa4ec28, format=0xbfa4ec84, width=0xbfa4e9f0,
    height=0xbfa4e9f4,
    writable=1) at mlt_frame.c:271
    #8 0xb52653b5 in filter_get_image (this=0x88629a8,
    image=0xbfa4ec28, format=0xbfa4ec84, width=0xbfa4ec88,
    height=0xbfa4ec8c,
    writable=1) at filter_resize.c:114
    #9 0xb7ebd7d8 in mlt_frame_get_image (this=0x88629a8,
    buffer=0xbfa4ec28, format=0xbfa4ec84, width=0xbfa4ec88,
    height=0xbfa4ec8c,
    writable=1) at mlt_frame.c:271
    #10 0xb526287f in filter_get_image (frame=0x88629a8,
    image=0x167, format=0x167, width=0x167, height=0x167,
    writable=0)
    at filter_data_show.c:225
    #11 0xb7ebd7d8 in mlt_frame_get_image (this=0x88629a8,
    buffer=0xbfa4ec28, format=0xbfa4ec84, width=0xbfa4ec88,
    height=0xbfa4ec8c,
    writable=0) at mlt_frame.c:271
    #12 0xb52b73ac in filter_get_image (this=0x88629a8,
    image=0xbfa4ec28, format=0xbfa4ec84, width=0xbfa4ec88,
    height=0xbfa4ec8c,
    writable=0) at filter_avcolour_space.c:89
    #13 0xb7ebd7d8 in mlt_frame_get_image (this=0x88629a8,
    buffer=0xbfa4ec28, format=0xbfa4ec84, width=0xbfa4ec88,
    height=0xbfa4ec8c,
    writable=0) at mlt_frame.c:271
    #14 0xb7ea8e02 in Mlt::Frame::get_image (this=0x8862080,
    format=@0xbfa4ec84, w=@0xb3651028, h=@0xb3651028, writable=0)
    at MltFrame.cpp:57
    #15 0xb7e6da9c in mediaObjectMlt::getVideoFrame () from
    /usr/lib/libmediaobject.so.1
    #16 0xb7e6d320 in mediaData::getVideoFrame () from
    /usr/lib/libmediaobject.so.1
    #17 0xb7e84706 in assetExchange::streamMediaintoimage ()
    from /usr/lib/libopenassetlib.so.1
    #18 0xb7e889b6 in assetExchange::getStreamImagePtr () from
    /usr/lib/libopenassetlib.so.1
    #19 0x081ae1b9 in FigureEditor::advanceClipFrame ()
    #20 0x081aea67 in FigureEditor::contentsMouseMoveEvent ()
    #21 0xb764c861 in QScrollView::viewportMouseMoveEvent ()
    from /usr/qt/3/lib/libqt-mt.so.3
    #22 0xb764ec7f in QScrollView::eventFilter () from
    /usr/qt/3/lib/libqt-mt.so.3
    #23 0xb752cccf in QObject::activate_filters () from
    /usr/qt/3/lib/libqt-mt.so.3
    #24 0xb752cda2 in QObject::event () from
    /usr/qt/3/lib/libqt-mt.so.3
    #25 0xb756885c in QWidget::event () from
    /usr/qt/3/lib/libqt-mt.so.3
    #26 0xb74cb18f in QApplication::internalNotify () from
    /usr/qt/3/lib/libqt-mt.so.3
    #27 0xb74cb545 in QApplication::notify () from
    /usr/qt/3/lib/libqt-mt.so.3
    #28 0xb7463d17 in QETWidget::translateMouseEvent () from
    /usr/qt/3/lib/libqt-mt.so.3
    #29 0xb74625ee in QApplication::x11ProcessEvent () from
    /usr/qt/3/lib/libqt-mt.so.3
    #30 0xb7476706 in QEventLoop::processEvents () from
    /usr/qt/3/lib/libqt-mt.so.3
    #31 0xb74e1982 in QEventLoop::enterLoop () from
    /usr/qt/3/lib/libqt-mt.so.3
    #32 0xb74e18d6 in QEventLoop::exec () from
    /usr/qt/3/lib/libqt-mt.so.3
    #33 0xb74ca33f in QApplication::exec () from
    /usr/qt/3/lib/libqt-mt.so.3
    #34 0x0807aca6 in main ()

     
  • Cinquero
    Cinquero
    2006-10-04

    raw vid seek segmentation fault in ddd

     
  • Cinquero
    Cinquero
    2006-10-04

    Logged In: YES
    user_id=1018844

    I have also added a screenshot of the source code position.

     
  • Cinquero
    Cinquero
    2006-10-04

    Logged In: YES
    user_id=1018844

    I have just tried your ffmpeg conversion command on one of
    my mpeg4 vids and the result works perfectly in jahshaka...
    what could be the reason for that? mplayer plays and seeks
    perfectly with its output files and ffplay plays/seeks them
    properly, too.

     
  • Cinquero
    Cinquero
    2006-10-04

    Logged In: YES
    user_id=1018844

    However, using ffmpeg to just copy the streams from my
    test.avi into a regenerated avi container does produce a
    file that shows the problems listed before.

     
  • Charles Yates
    Charles Yates
    2006-10-04

    Logged In: YES
    user_id=180811

    Hmm - that is interesting indeed... if ffplay can handle it,
    then jah/mlt should too - could you try to upload a 1 second
    clip from mencoder which shows the issue?

     
  • Cinquero
    Cinquero
    2006-10-04

    Logged In: YES
    user_id=1018844

    I now used ffmpeg to encode a part of my raw vid into mpeg4
    -- the result worked. I then used ffmpeg to convert the
    mpeg4 data back to rawvideo data: again, jahshaka crashes
    when seeking and even when resizing the preview window (no
    matter at which position the preview currently is).

    to mpeg4:
    http://k6/~files/yuv420-mpeg4.avi

    and back to yuv420:
    http://k6/~files/yuv420-mpeg4-yuv420.avi.bz2

     
1 2 > >> (Page 1 of 2)