Feature #1638
openpost-process / converting files
0%
Description
This is sort of two issues in one:
I use xbmc/tvheadend, and use a postprocess script to convert finished recordings.
My recordings are written as TS, and then I convert them to h.264 / mkv.
The conversion itself works fine, but I tvheadend doesn't acknowledge that the filename has changed from foo.ts to foo.mkv.
I am not sure if I'm doing something wrong or if inotify is not working for me for some reason. (It is enabled at least.)
Second issue:
If I manually modify the entry in /dvr/log to have the correct file ending and restart tvheadend, I can find the file in the recordings list, and I can play it, but when I start seeking I get "htsp seek error".
Note that I don't get this when playing the file as a regular file in xbmc, so this problem seems to be in either tvheadend or the tvheadend pvr plugin for xbmc.
For reference, here is my post process script:
#!/bin/bash
SOURCE="$1"
if [ "x$SOURCE" == "x" ]; then
echo "Usage: $0 <input file>"
exit 1
fi
if [ ! -e "$SOURCE" ]; then
echo $SOURCE does not exist
exit 1
fi
SOURCE_NO_EXT="${SOURCE%.*}"
SOURCE_EXT="${SOURCE##*.}"
if [ $SOURCE_EXT == $SOURCE ]; then
echo No file ending found in $SOURCE
exit 1
fi
if [ $SOURCE_EXT == "mkv" ]; then
mkvinfo "$SOURCE" | grep h.264 > /dev/null
if [ $? -eq 0 ]; then
echo $SOURCE is already converted
exit 1
fi
elif [ $SOURCE_EXT != "ts" ]; then
echo Unsupported file ending \"$SOURCE_EXT\"
fi
TARGET="${SOURCE_NO_EXT}.mkv"
DEST="$SOURCE".inprogress.mkv
if [ -e "$DEST" ]; then
echo "$DEST" "already exists - transcoding already in progress?"
exit 1
fi
echo "Input: " "$SOURCE"
echo "Temporary output:" "$DEST"
echo "Output: " "$TARGET"
sleep 3
nice -n19 HandBrakeCLI -i "$SOURCE" -o "$DEST" -e x264 -E ffac3 < /dev/null
if [ $? -ne 0 ]; then
echo "transcoding failed - aborting"
rm -f "$DEST"
exit 1
fi
mkvinfo -q "$DEST"
if [ $? -ne 0 ]; then
echo "transcoding output is not a valid mkv - aborting"
rm -f "$DEST"
exit 1
fi
sleep 3
# Always move it to SOURCE first, so that tvh can pick up the filename change through inotify
mv "$DEST" "$SOURCE"
if [ $? -ne 0 ]; then
echo Could not move $DEST to $SOURCE
exit 1
fi
if [ "$SOURCE" != "$TARGET" ]; then
sleep 3
mv "$SOURCE" "$TARGET"
if [ $? -ne 0 ]; then
echo Could not move $SOURCE to $TARGET
exit 1
fi
fi
chmod 777 $TARGET
echo All done converting $TARGET
Updated by Adam Sutton over 12 years ago
- Tracker changed from Bug to Feature
Not a bug, TVH doesn't currently handle file moves. I'll try and look at this for 4.0.
Adam
Updated by Adam Sutton almost 12 years ago
- Category changed from General to PVR / DVR
- Status changed from New to Accepted
TVH will detect simple renames, but not moves, now.
But some better integration with external scripts would be good.
Adam