openshot.bugs team mailing list archive
-
openshot.bugs team
-
Mailing list archive
-
Message #05152
[Bug 1264653] Re: Photo to Full HD video crop and scale width rounding error
Avdshare Video Converter is an all-in-one MOV cropper and video cropper,
which can crop MOV, MP4, AVI, MKV, VOB, DV, FLV, RMVB, AVCHD, MPEG, M2TS
etc.
--
You received this bug notification because you are a member of OpenShot
Bugs, which is subscribed to OpenShot Video Editor.
https://bugs.launchpad.net/bugs/1264653
Title:
Photo to Full HD video crop and scale width rounding error
Status in OpenShot Video Editor:
New
Bug description:
Architecture (64 bits or 32 bits) : 32 bits
Operating System & version: Ubuntu 13.10 "saucy"
Installation Method : via Ubuntu Software Center
Version of Openshot installed : 1.4.3
BZR Revision used (if any) : None
MLT/melt version: I do not know, what this mean
FFmpeg (i.e.libavcodec) version : avconv version 0.8.9-6:0.8.9-0ubuntu0.13.10.1
FFmpeg installation : Not installed.
This bug can be by 100% reproduced through following actions:
1) Set the project default size in the preferences to 1080p 25 fps
2) Set the default clip length in the prefernces to 7 seconds
3) Create a new project
4) Create 3 tracks
5) Import a soundfile of adequate length seconds duration to track 0
6) Import 2 black images and a photo (5184x3456 18 megapixel) into the project (track 1 and 2) incl. cross-fades
7) Edit the clip layout keyframes to zoom in or zoom out the photo in every clip
8) Export the video using the mp4 (h.264) codec at high quality
9) Play the buggy video in vlc video player in full screen mode: vlc "<FilePath>" -f
On the right side of the player pixel column 1920 disappears and
reappears frequently. If the still file name is displayed by vlc
player you can see that the whole frame is freqently chattering by one
pixel from the left to the right and back again.
This chattering reduces the subjective enjoyment of the viewer by more
than 66 %. From my point of view, a failure like this is not an
option. So I ask you to solve this problem before you launch OpenShot
V.2.0.
avprobe version 0.8.9-6:0.8.9-0ubuntu0.13.10.1, Copyright (c) 2007-2013 the Libav developers
built on Nov 9 2013 19:15:22 with gcc 4.8.1
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'Test1.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf53.21.1
Duration: 00:00:11.72, start: 0.000000, bitrate: 7170 kb/s
Stream #0.0(und): Video: h264 (High), yuv420p, 1920x1080 [PAR 1:1 DAR 16:9], 6973 kb/s, 25 fps, 25 tbr, 25 tbn, 50 tbc
Stream #0.1(und): Audio: ac3, 44100 Hz, stereo, s16, 191 kb/s
This problem is also visible while playing the timeline (preview) within OpenShot.
This may be a problem within the libav library you use in the OpenShot
crop and scale function.
Please have a look on the crop and scale function in my own application KeyframeEditor:
https://launchpad.net/keyframeeditor
I detected and reproduced the the same libav problem, when cropping
and scaling with avconv in KeyframeEditor.
PROPOSED WORKAROUND:
I worked around this problem in KeyframeEditor by using ImageMagick for cropping and scaling and to
give the position and size parameters as exact float values to ImageMagick.
Test script:
#!/bin/bash
#
# Custom crop and scale method
#
# Interface
echo "Image input path ....: $1"
echo "Crop width ..........: $2"
echo "Crop height .........: $3"
echo "Crop x ..............: $4"
echo "Crop y ..............: $5"
echo "Project width .......: $6"
echo "Project height ......: $7"
echo "Image output path ...: $8"
#
# Note: This script must be capable to overwrite the output path without user interaction.
# Note: This script must be capable to to overwrite the input path by the output path.
#
# Action
# Using ImageMagick
convert "$1" -crop "$2x$3+$4+$5" -resize "$6x$7" "$8"
EXITCODE=$?
if [ ! "$EXITCODE" == "0" ]; then
echo "ERROR: convert canceled with exit code $EXITCODE."
exit 1
fi
echo "Complete."
# Exit
exit 0
Inside Keyframe editor I call "convert" only one time and order to
render the whole clip in one pass. This is more efficient than to call
convert at cropping every frame.
See KeyframeEditor.py / object ExportVideoFrame / thread handler
CropImagesFromPhoto / after elif self.sCropScaleTool == "ImageMagick".
Currently I bypass this problem within OpenShot 1.4.3 by using the
methods I described in Chapter III and IV of the KeyframEditor
tutorial, which is available in the KeyframeEditor README file.
To manage notifications about this bug go to:
https://bugs.launchpad.net/openshot/+bug/1264653/+subscriptions
References