Ticket #204 (closed defect: fixed)
Indytube doesnt work with the videos with the same name, but different file extensions
| Reported by: | andycat | Owned by: | andycat |
|---|---|---|---|
| Priority: | major | Milestone: | 0.2.3 |
| Component: | Transcoding | Severity: | |
| Keywords: | Cc: | ||
| Who will test this: |
Description
Indytube breaks if a user uploads "myvideo.mov" and "myvideo.avi" because of the its simplisitic system of creating "myvideo.flv.inc" and "myvideo.flv"
It creates the correct FLV and .inc (html) files each time, but they get over-written , so that only one set of these files exist.
We need to construct a unqiue filename from the original uploaded video filename (maybe a hash of the entire filename , eg hash("myvideo.mov") & hash("myvideo.avi") ) so that the encoded video and html filenames are unique.
Attachments
Change History
comment:2 Changed 4 years ago by andycat
to reproduce the bug: start with two videos named the same , except for extension -- eg abc3.mov, and abc3.mp4 it helps that they are actually different videos so you can see the effect. However, the most common use case would be that the user uploads the same video in different encodings.
Demo.plumi.org has the version with the bug.
Upload the first video, it transcodes fine. http://demo.plumi.org/Members/andycat/videos/abc3.mov/view
Upload the second one, instantly you see the included HTML (hence the flowplayer, and the link to the transcoded FLV itself) from the above first movie. http://demo.plumi.org/Members/andycat/videos/abc3.mp4/view
Ive uploaded the same two videos to testing, and it works.
http://testing.engagemedia.org/Members/andycat/videos/abc3.mp4/view
http://testing.engagemedia.org/Members/andycat/videos/abc3.mov/view You should see the second movie properly transcoded after a while, instead of the first. ---
Implications:
to solve the bug, the indytube, and ATEngageVideo content type object , need to use unique filenames, instead of just the first part of the filename (eg "abc3" in the above example)
This *changes* the filename of the transcoded FLV itself from "abc3.flv" to "abc3-86815054b76eb22efc585b43726192a5.flv" for instance.
This *could* break already existing html embed codes, *if* the old FLV file is deleted. This should not happen, if you keep them around, during an upgrade to this version.
--- Upgrade notes:
stop indytube clear away all lock files, and skip files eg find /opt/tebet-instances/testing.engagemedia.org/var/files/Members/ -name "*.wetube*" -print -exec rm {} \;
(practice without the "-exec rm {} \;" first ;)
set DO_ENCODING=False in indytube.conf
start indytube
it has code to copy old forms of "<filename>.flv" to "<filename-HASH>.flv", so it doesnt need to retranscode. this will generate new html inc files also.
after one loop thru, stop indytube
reset DO_ENCODING to True
restart indytube for good.
Note, since you cleared old lockfiles and skipfiles, older videos that werent every transcoded will be attempted to be encoded.
pls reproduce the bug, and then test it :)
comment:3 Changed 4 years ago by datakid
- Status changed from new to closed
- Resolution set to fixed
Seems to be working for me too - nice one bro.
http://testing.engagemedia.org/Members/datakid/videos/house_of_cosbys_5.mp4/view
http://testing.engagemedia.org/Members/datakid/videos/house_of_cosbys_5.flv/view
tested! fixed!
comment:4 Changed 4 years ago by andycat
ATVideo change http://dev.plone.org/collective/changeset/78561
indytube change http://plumi.org/changeset/474/indytube
you need *both* updates.

When running from a production system of indytube, from before this fix, you should re-run indytube the first time with indyconf.conf DO_ENCODING=False !! Then stop indytube, turn it back to DO_ENCODING=True
This is so that the templates get re-generated with their new names, but indytube doesnt re-transcode the file. Normally, one trigger for re-transcoding is that the template inc file is missing, but in this case the filename of the template inc file is changing to a new scheme introduced by this fix. (The retranscode function on the web UI deletes the template inc file to trigger a retranscoding from indytube)