- After a number of issues with avconv I switched to ffmpeg. Out of memory (OOM) errors. Non-monotonic timestamp issues, and audio/video sync problems
- Sometimes mythtranscode can fail. If it does, the recommended way to fix it is to stream copy the .mpg using ffmpeg, replace the original file and try again.
- Android only supports H264 baseline profiles.
- 480p works quite nicely on a Samsung S3 screen
- Built-in mythtv editor for cut-points easy and quick to use – in conjunction with “honorcutlist” option.
Custom job command to invoke
/home/mythtv/bin/transcode.sh "%DIR%/%FILE%" "%TITLE%" "%SUBTITLE%" "%STARTTIMEUTC%" %CHANID%
Script
#!/bin/bash file="$1" title=$(echo $2 | tr -c "[^A-Za-z0-9]" "." ) subtitle=$(echo $3 | tr -c "[^A-Za-z0-9]" "." ) date=$(echo $4 | perl -pe 's/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})/\1.\2.\3-\4.\5/') nice_title="$title-$subtitle-$date" DEST="$(dirname $file)/phone" mkdir -p $DEST WORKING="$(dirname $file)/working" mkdir -p $WORKING cd $WORKING if [ -f "$DEST/$nice_title.mp4" ]; then echo "$DEST/$nice_title.mp4 already exists. Exiting" exit fi mythtranscode --mpeg2 --chanid $5 --starttime $4 --honorcutlist if [ ! "$?" == "0" ]; then echo "Transcode failed. Attempting to fix with stream copy" $HOME/bin/ffmpeg -i $1 -acodec copy -vcodec copy $1.fixed.mpg mv $1 $1.backup mv $1.fixed.mpg $1 mythtranscode --mpeg2 --chanid $5 --starttime $4 --honorcutlist fi; $HOME/bin/ffmpeg -y -i $1.tmp \ -c:v libx264 -preset slower -profile:v baseline \ -strict experimental -c:a libfdk_aac -b:a 96k \ -vf yadif,scale="trunc(oh*a/2)*2:480" -crf 23 -r 25 \ "$nice_title.mp4" mv -f "$nice_title.mp4" $DEST