[mythtvnz] nuvexport of HD recordings
Tony Sauri
hoiho.nz at gmail.com
Wed Feb 17 09:34:00 GMT 2010
On Tue, 16 Feb 2010 22:59, Robin Gilks wrote:
> Looking forward to it...
>
>
> --
> Robin Gilks
Well I promised so I had better get started however there is a chance this
will be a bit disjointed as I am on holiday and away from my main pc and my
notes and more importantly WAF dictates that I can not spend all day polishing
this message.
Where to start?
First my environment
My Backend is a 3GHz P4 with 1 GB RAM. I have installed Mythbunto 9.04 and
then then I installed JYA's fixes for VDPAU (even though my F/E does not have
NVidia componetnts) as I thought at the time this was the easiest way to get
Paul Kendall's LATM patch for FFMPEG
The Frontend is an IBM T23 laptop (1.13GHz)also running Mythbuntu 9.04 with
JYA's fixes.
After absorbing the quite compelling message imparted by trying to watch DVB-T
HD tv on an under-powered platform I decided that the way forward would be to
downrate the recorded files to DVD quality that would play adequately on my
frontend platform while retaining all the functionality of the Myth platform.
My first experiments were with FFMPEG that I have used quite extensively over
the last few years and it is my transcoder of choice.
About this time I realised that JYA's fixes for LATM were only in the private
Myth FFMPEG library and not in the general FFMPEG software. So I built a
local version of FFMPEG that had PK's patch applied
My first problems were trying to keep audio and video in sync after much
experimentation I found that the -itsoffset parameter was crytical and -async
1 parameter seemed to add aditional benefit although I am not fully convinced
about -async.
I then started searching for how to calculate with precision the time
adjustment to give -itsoffset. My quest led me to 2 pieces of software a)
MEDIAINFO from http://mediainfo.sourceforge.net/en and b) FFPOCKET from
http://members.hellug.gr/djart/ffpocket/index.html. By using information
from both programmes I seem to have struck a formula which works for me.
I then saw it as important to seamlessly integrate the transcoded file back
into the Myth system.
I have had to regenerate the entries in the markup table to facilitate
navigation and comm flagging. To do this I had to understand how Myth
generates the markup table entires in the first place. They are created in
the nupplevideo recorder function and I understand that they are generated a
fixed number of frames apart irrespective of the encoding of the incoming
datastream. I thought this was going to be the end of my journey until
reading the myth code I discovered that the strict fixed number of frames per
gop did not apply to the avi container.
After determining that Myth seemed to process an playback an avi file
correctly i used this container as my standard so now my FFMPEG command line
looks a mlittle like this:
nice -n 19 /home/mythtv/bin/ffmpeg $itsoffset_term -i $recordedfile -acodec
libmp3lame -ab 128k -ac 2 -ar 48000 -vol 384 -vcodec mpeg4 -b 4500k -r 25 -s
720x576 -croptop 2 -cropbottom 2 -padtop 2 -padbottom 2 -f avi -y -async 1 -g
15 $deinterlace_term $transcodedfile
The four variables would look like:
$itsoffset_term = -itsoffset -234
$recordedfile = /var/lib/mythtv/recordings/1001_20100217221000.mpg
$deinterlace_term = -deinterlace or "blank"
$transcodedfile = /var/lib/mythtv/recordings/1001_20100217221000.mpg.tmp
Once the transcoded file has been created the only things left to do are to
rename the files to their new locations, cleanup the database by deleting,
blanking certain fields in the recorded table, deleting entries in the
recordedmarkup and recordedseek tables followed by the use of mythcommflag to
a) rebuild the recordedseek entries and then if appropriate use mythcommflag
to flag for commercials.
All this is setout in the attached perl script.
Note: this is not my current production script and contains much hardcoded
stuff. As said before I am on holiday and do not have access to my usual
system at the moment.
When I get back home ... end of next week I will be willing to post the
current script for your info and use.
I hope this has been of some use to Robin and others.
Regards
Tony Sauri
-------------- next part --------------
A non-text attachment was scrubbed...
Name: MythUserJob1.pl
Type: application/x-perl
Size: 13866 bytes
Desc: not available
Url : http://lists.ourshack.com/pipermail/mythtvnz/attachments/20100217/3a525139/attachment-0001.bin
More information about the mythtvnz
mailing list