View previous topic :: View next topic |
Author |
Message |
pteppic l33t
Joined: 28 Nov 2005 Posts: 781
|
Posted: Sat Jan 06, 2007 1:17 pm Post subject: MythTV avi exporter (and file transcoder v0.41-r85) |
|
|
I got bored constantly hacking about nuvexport to make it do what I wanted, so I wrote my own, with a GUI.
It only supports mencoder ATM, with options for the x264 encoder, but it's only the first working copy.
Now has quite a few default profiles to select from, including xvid, dvd and x264
I'd be grateful if you could try and break it so I can bug fix, it's only on the svn server for now.
Any suggestions welcome.
Requires mythtv (mythtranscode), mencoder (mplayer), x264-svn, PyQt and qt-3. Later versions may not require mythtv on the exporting host, but it does for now.
No longer requires mythtv on the export host, but still does for cutlists
Edit:erm, may be confusing, don't run main.py just myth2avi.py. _________________ Current Project Thread (myth2avi)
Last edited by pteppic on Thu Jul 12, 2007 11:21 pm; edited 9 times in total |
|
Back to top |
|
|
devsk Advocate
Joined: 24 Oct 2003 Posts: 3003 Location: Bay Area, CA
|
Posted: Sun Jan 07, 2007 7:16 pm Post subject: |
|
|
feature request in order of preference:
1. xvid? my standalone can't deal with x264 at this time, neither can many of friends' AFAIK.
2. optionally update DB with the exported entry as the recording and delete the original recording from disk and DB.
3. search mysql.txt in more standard places before giving up.
one last comment: PyQt adds three more packages to the growing list of packages on my box. But I don't see you going back on this one, because code heavily depends on this. |
|
Back to top |
|
|
pteppic l33t
Joined: 28 Nov 2005 Posts: 781
|
Posted: Mon Jan 08, 2007 1:24 am Post subject: |
|
|
1. not a problem, its on the list after a few other tweaks.
Is x264 hungry then? It's the same speed as everything else here (within reason)
2. maybe someday, but I'm not too keen to screw up any databases yet (especially mine ), but still possible. I'm thinking of caching data in there anyhow, if I can, to speed up the startup time for reading file info, but it would be in it's own table, so a lot safer as long as I don't run drop or anything stupid.
3. can you list some more standard places pls ~/.mythtv/mysql.txt is the only one I know of, sorry
As for PyQT, well you have qt for myth so it's a good start, it provides it's own threading support (which I think I need for multiple windows later) and the mysql libraries. But mainly because it's so quick and simple to use with eric3
It's changed a bit over the last 2 days, it's rev 50 now, and it actually uses the pass logs on the final pass now too(Doh)
I'm gonna put the version and rev in the topic title form time to time, so it's easier to track. |
|
Back to top |
|
|
pteppic l33t
Joined: 28 Nov 2005 Posts: 781
|
|
Back to top |
|
|
devsk Advocate
Joined: 24 Oct 2003 Posts: 3003 Location: Bay Area, CA
|
Posted: Mon Jan 08, 2007 3:26 am Post subject: |
|
|
pteppic wrote: | 1. not a problem, its on the list after a few other tweaks.
Is x264 hungry then? It's the same speed as everything else here (within reason)
2. maybe someday, but I'm not too keen to screw up any databases yet (especially mine ), but still possible. I'm thinking of caching data in there anyhow, if I can, to speed up the startup time for reading file info, but it would be in it's own table, so a lot safer as long as I don't run drop or anything stupid.
3. can you list some more standard places pls ~/.mythtv/mysql.txt is the only one I know of, sorry
As for PyQT, well you have qt for myth so it's a good start, it provides it's own threading support (which I think I need for multiple windows later) and the mysql libraries. But mainly because it's so quick and simple to use with eric3
It's changed a bit over the last 2 days, it's rev 50 now, and it actually uses the pass logs on the final pass now too(Doh)
I'm gonna put the version and rev in the topic title form time to time, so it's easier to track. | my biggest gripe with mythtv is that the transcoded files are NUV and can't be played on the standalone. nuvexport solves it but leaves the "update DB" out, so either I have huge untranscoded shows under "watch recordings" or I have huge set of nuvexported files which I need the mythvideo to play (and mythvideo is buggy as hell) in mythtv. All this aggravation just because mythtv transcode wants NUV and doesn't give the choice of standard xvid AVI which every standalone divx player can play.
x264 is wonderful but again my standalone can't play it. encoding speed is same as xvid on my machine as well.
nuvexport searches mysql.txt as:
Code: |
my @mysql = ('/usr/local/share/mythtv/mysql.txt',
'/usr/share/mythtv/mysql.txt',
'/etc/mythtv/mysql.txt',
'/usr/local/etc/mythtv/mysql.txt',
$ENV{'MYTHCONFDIR'} ? "$ENV{'MYTHCONFDIR'}/mysql.txt" : '',
"$ENV{'HOME'}/.mythtv/mysql.txt",
'mysql.txt'
);
|
pteppic, if you could do xvid and db update thing to point the recording to transcoded one, I will be eternally grateful! I wish I knew mysql (or QT's interface to it) well enough to code it, I would code it myself, I am so desperate for this feature. I am desperate because it gives an integrated view in mythtv under watch recordings, and the recordings work out of box on the standalone player.
one more feature, to make it a complete tool, is to allow everything that works from GUI thru command line as well. This will make it trivial to put it as a user job in mythtv. but this would be the least priority at this time. |
|
Back to top |
|
|
devsk Advocate
Joined: 24 Oct 2003 Posts: 3003 Location: Bay Area, CA
|
Posted: Mon Jan 08, 2007 3:52 am Post subject: |
|
|
Code: | mysql> select basename from recorded;
+------------------------------------------------------+
| basename |
+------------------------------------------------------+
| America's_Funniest_Home_Videos_2007-01-07_2-00PM.mpg |
+------------------------------------------------------+
1 row in set (0.00 sec)
mysql> | I am just wondering if writing a user job, which does a little mythtranscode, followed by a call to ffmpeg and eventually changes the basename in the DB to point to .avi instead of .mpg, and optionally deletes the .mpg, will stop all the aggravation that I am going thru? will think about this a little more. sorry for the OT. |
|
Back to top |
|
|
devsk Advocate
Joined: 24 Oct 2003 Posts: 3003 Location: Bay Area, CA
|
Posted: Mon Jan 08, 2007 5:25 am Post subject: |
|
|
darn! more OT.
nuvexport has a '--infile' option which I didn't know about. It just uses the defaults (or those from ~/.nuvexportrc) and encodes a filepath into avi without human intervention. what kind of program doesn't print list of options with --help? nuvexport kind.... I always thought it was an interactive program.
Now, only thing left is the database update. |
|
Back to top |
|
|
pteppic l33t
Joined: 28 Nov 2005 Posts: 781
|
Posted: Mon Jan 08, 2007 10:25 am Post subject: |
|
|
devsk wrote: | Code: | mysql> select basename from recorded;
+------------------------------------------------------+
| basename |
+------------------------------------------------------+
| America's_Funniest_Home_Videos_2007-01-07_2-00PM.mpg |
+------------------------------------------------------+
1 row in set (0.00 sec)
mysql> |
|
And that works for avi's does it? I mean, the internal player will play avi files?
Any how, xvid is done.
It's odd, xvid via ffmpeg is fast, xvid via mencoder seems slower, but x264 mencoder is faster than either by a long way, especially on pass 1, the files are tiny too (90 minutes at qpal in about 500 meg, and thats with 2ch ac3 384k audio dumped straight from dvd)
x264 is slow on the p4 machine (it's a busy box, pun unintended), but like I say, it flies on amd64 |
|
Back to top |
|
|
pteppic l33t
Joined: 28 Nov 2005 Posts: 781
|
Posted: Mon Jan 08, 2007 10:39 am Post subject: |
|
|
devsk wrote: | Now, only thing left is the database update. |
Code: | echo "update recorded set basename=\"${infile%.*}.avi\" where basename=\"${infile}\" limit 1;"|mysql -h blah -pblah -u blah mythconverge | ?
Then do a delete from recordedmarkup where starttime=(select starttime from recorded where basename=${infile%.*}.avi) and chanid=(select chanid from recorded where basename=${infile%.*}.avi), and mythcomflag --rebuild -i ${infile%.*}.avi to rebuild recorded seek. |
|
Back to top |
|
|
devsk Advocate
Joined: 24 Oct 2003 Posts: 3003 Location: Bay Area, CA
|
Posted: Mon Jan 08, 2007 7:41 pm Post subject: |
|
|
pteppic wrote: | And that works for avi's does it? I mean, the internal player will play avi files? |
After I replaced the original mpg file with the nuvexported xvid AVI and updated the database's basename, it seems to play it fine but because its mapping Up/Down, Left/Right arrows internally, its currently confused with the seeking. its probably because I didn't do the recordedmarkup thing you mentioned.
pteppic wrote: | Any how, xvid is done. |
great! that's one down, one to go! Thanks.
pteppic wrote: |
It's odd, xvid via ffmpeg is fast, xvid via mencoder seems slower, but x264 mencoder is faster than either by a long way, especially on pass 1, the files are tiny too (90 minutes at qpal in about 500 meg, and thats with 2ch ac3 384k audio dumped straight from dvd)
x264 is slow on the p4 machine (it's a busy box, pun unintended), but like I say, it flies on amd64 | x264 is really awesome! Its quality/size ratio is the highest so far but unless I truly have a centralized media PC (or they come out with standalones which decode x264), its restricted to PC only viewing.
And yeah, amd64 rocks with encoding here in 64 bit mode. |
|
Back to top |
|
|
devsk Advocate
Joined: 24 Oct 2003 Posts: 3003 Location: Bay Area, CA
|
Posted: Mon Jan 08, 2007 7:52 pm Post subject: |
|
|
pteppic wrote: | It's odd, xvid via ffmpeg is fast, xvid via mencoder seems slower, but x264 mencoder is faster than either by a long way | ffmpeg has improved a lot. its not only faster than transcode, it also produced better quality result comparatively. see this post I made to mythtv-users list:
I found ffmpeg to be a winner in all aspects: quality, speed, compatibility and size closer to the specified bitrate. I have uploaded two frame grabs for comparison purposes
http://home.comcast.net/~funtoos/transcode.png
http://home.comcast.net/~funtoos/ffmpeg.png
transcode is a little more smoothed out: note the sharpness in curtain and sunlight falling on the door thru the curtain in ffmpeg on the left side of the grab, whereas they are so fuzzy in transcode. The avg. rate was 1471 for transcode and 1508 for ffmpeg, for a specified rate of 1500. mencoder went crazy with bitrates (used 2800 for a specified rate or 1500), so was ruled out.
It may just be the options that nuvexport passes to these programs, and it is possible that manually I may be able to tune mencoder (my preferred program for x264) better than ffmpeg but for me its necessary to do the database thing, so nuvexport works OOB and is preferred. |
|
Back to top |
|
|
pteppic l33t
Joined: 28 Nov 2005 Posts: 781
|
Posted: Mon Jan 08, 2007 11:25 pm Post subject: |
|
|
devsk wrote: | pteppic wrote: | And that works for avi's does it? I mean, the internal player will play avi files? |
After I replaced the original mpg file with the nuvexported xvid AVI and updated the database's basename, it seems to play it fine but because its mapping Up/Down, Left/Right arrows internally, its currently confused with the seeking. its probably because I didn't do the recordedmarkup thing you mentioned. |
Good, I'm gonna play around with this a bit, and see what can be done to make it seek again (maybe mythcommflag --rebuild??), I don't wanna put out a half baked solution for this.
I'd like to know what encoder you use with nuvexport for xvid (I'd assume ffmpeg), 'cos I want to see if there are any compatability type things going on (like divx{3,4,5} compatible etc)
Xvid via ffmpeg is next on the list after audio settings anyhow, but if I do it before audio I'll just have more to fix after.
It will take some restructuring, as I omitted to remember the "ffmpeg 'in options' infile 'out options' outfile" command format.
An instance of an export profile class per export makes most sense, and is a better programming technique for easy expansion, oh 20:20 hindsight is great , at least I should be able to do it without total breakage.
I've just done the 'more mysql.txt paths', it will be commit 55.
Just for the record commits 51 thru 53 are kinda broken, well, not kinda, they are all broken, each in their own unique and elusive way. |
|
Back to top |
|
|
devsk Advocate
Joined: 24 Oct 2003 Posts: 3003 Location: Bay Area, CA
|
Posted: Tue Jan 09, 2007 1:55 am Post subject: |
|
|
pteppic wrote: | I'd like to know what encoder you use with nuvexport for xvid (I'd assume ffmpeg), 'cos I want to see if there are any compatability type things going on (like divx{3,4,5} compatible etc) | ffmpeg produced the most compatible avi for standalone playing. with transcode, I couldn't fast fwd at speeds greater than 2x, audio video went out of sync if I did fast fwd even at 2x, previous/next (forward by 5 minutes I guess) on the remote hung the playback completely. So, I gave up on transcode and stuck with ffmpeg. |
|
Back to top |
|
|
devsk Advocate
Joined: 24 Oct 2003 Posts: 3003 Location: Bay Area, CA
|
Posted: Tue Jan 09, 2007 3:01 am Post subject: |
|
|
so I did the delete of recordedmarkup and commflag --rebuild, I could seek successfully in the mythtv watch recording but I kept getting
Code: | [mpeg4 @ 0x3151acbf70]warning: first frame is no keyframe | every time I seeked on the window where frontend was started from. I think internal player expects it to be NUV. It plays it fine because NUV is ultimately AVI with some more metadata but it misses some things. no such problems on the standalone player: no problems seeking, no sync problems, no problem fwding or rewinding. I would say I am satisfied with it. |
|
Back to top |
|
|
pteppic l33t
Joined: 28 Nov 2005 Posts: 781
|
Posted: Tue Jan 09, 2007 6:45 am Post subject: |
|
|
devsk wrote: | I could seek successfully in the mythtv watch recording but I kept getting
Code: | [mpeg4 @ 0x3151acbf70]warning: first frame is no keyframe |
|
Hmm, may be able to sort that out, perhaps by sticking some keyframes in...
I don't know, but I will experiment when time permits. |
|
Back to top |
|
|
devsk Advocate
Joined: 24 Oct 2003 Posts: 3003 Location: Bay Area, CA
|
Posted: Tue Jan 09, 2007 6:54 am Post subject: |
|
|
actually, I thought nuvexport already passed ffmpeg the option do exactly that, and this warning was more of something missing in the header which is specific to NUV avi format. But I may be wrong. |
|
Back to top |
|
|
pteppic l33t
Joined: 28 Nov 2005 Posts: 781
|
Posted: Wed Jan 10, 2007 6:38 am Post subject: |
|
|
Well, even some of my nicely seeking nuv files spurt out the keyframe error anyway, so no amount of keyframe insertion into avi files stopped it.
I've kinda finished on v0.1, so gave it a version bump, and a lot of internal restructuring, I'm gonna try and work on the delogo filter next, 'cos that really rocks. |
|
Back to top |
|
|
immudium Guru
Joined: 12 Oct 2004 Posts: 332 Location: Utah
|
Posted: Wed Jan 10, 2007 7:58 pm Post subject: |
|
|
Hi, this really sounds like a good idea and I'm excited to see it progress. However, I have been having some difficulties running so I would like to post my experiences and hope that they can help improve the utility.
First up is a dialog that says:
Code: | Fatal Error
The file mysql.txt could not be read properly
"LocalHostName" setting not found
Program will now exit |
Because of course, I don't use the LocalHostName setting.
I set a name in the mysql.txt and I can run now, but Select Programs is blank, again probably because I don't use LocalHostName.
Code: | QSqlQuery::exec: database not open
QSqlQuery::value: not positioned on a valid record
QSqlQuery::exec: database not open
|
Then there is a problem even closing the program at this point. When I click on the Exit button I get an error:
Code: | Traceback (most recent call last):
File "myth2avi.py", line 533, in reject
if self.thread.running():
AttributeError: 'NoneType' object has no attribute 'running' |
I have to open a terminal and kill -9 the python process in order to exit
So at this point, I enable debugging:
Code: | python myth2avi.py -d3 |
And I remove the LocalHostName query and change the query to:
Code: | q=QSqlQuery( 'select data from settings where value="RecordFilePrefix";') |
Then I get another db.open error so I add some debugging:
Code: | if not db.open():
print "Error opening database"
print db.lastError().driverText()
print db.lastError().databaseText()
sys.exit(1) |
And get Code: | Access denied for user 'bmerrill'@'192.168.0.3' (using password: YES) |
Of course since I am running this as my normal user and not as my mythtv user. It would be nice to be able to specify what user to run with.
So I add Code: | db.setUserName(self.DBUserName) |
And now I begin to get program information.
"Gathering export data for blah blah blah..."
And another error at the end
Code: | Traceback (most recent call last):
File "myth2avi.py", line 785, in ?
f = subGUI()
File "myth2avi.py", line 85, in __init__
self.item = QCheckListItem(self.item_2,None,QCheckListItem.CheckBox)
TypeError: argument 3 of QCheckListItem() has an invalid type |
If I change the None argument to an empty string, i.e. "" then it seems happy. I have to do this once more at line 96 and finally I get the list of my shows.
I select a program that has a cutlist, click the output settings tab, select x264 qpal from the code dropdown and... another error
Code: | Traceback (most recent call last):
File "myth2avi.py", line 203, in setupOptions
self.bitrate.setText(None)#self.__tr('0'))
TypeError: argument 1 of QLineEdit.setText() has an invalid type |
Selecting Xvid, I can get somewhere, I click Queue Job and off I go. For a few seconds anyway until I get
Code: | Mythtranscode= /usr/bin/mythtranscode -f /tmp/29308 -l -c 1021 -s 20061212185900 -v none
Traceback (most recent call last):
File "myth2avi.py", line 595, in run
self.export(obj)
File "myth2avi.py", line 676, in export
self.kill()
File "myth2avi.py", line 762, in kill
self.base.reap(self.enprocess.pid)
AttributeError: enprocess |
And I have not idea at this point. I have never programmed in Python before so I have no idea why it's throwing errors from the GUI. Is there a particular version I should be using? I am using python version 2.4.4 and PyQt version 3.17. Also 90% of my recorded programs are HDTV transport streams. I don't know if this makes any difference to transcode or not. Anyway, I hope this feedback is helpful. I'll keep hacking on it and see if I can get some sort of encoded output out. Please let me know if I can provide any additional information that you might need. Thanks. |
|
Back to top |
|
|
pteppic l33t
Joined: 28 Nov 2005 Posts: 781
|
Posted: Thu Jan 11, 2007 2:20 am Post subject: |
|
|
Thanks for the feedback, I'll go through it bit by bit.
Code: | Fatal Error
The file mysql.txt could not be read properly
"LocalHostName" setting not found
Program will now exit | EDIT:FIXED
Right, I'll sort it out to use Code: | q=QSqlQuery( 'select data from settings where value="RecordFilePrefix";') | if there is no 'LocalHostName' set, and check the dir exists. (EDIT: Hmm, maybe mythtv-setup needs to be run, in which case I won't do anything, but maybe put in an error dialog.)
This Code: | QSqlQuery::exec: database not open
QSqlQuery::value: not positioned on a valid record
QSqlQuery::exec: database not open
| and Code: | db.setUserName(self.DBUserName) | fall into the doh category Quote: | db=QSqlDatabase('QMYSQL3',self.DBName)
db.setPassword(self.DBPassword)
db.setDatabaseName(self.DBName)
db.setHostName(self.DBHostName)
db.setPassword(self.DBPassword) << should be db.setUserName(self.DBUserName) | EDIT:FIXED
Code: | Traceback (most recent call last):
File "myth2avi.py", line 533, in reject
if self.thread.running():
AttributeError: 'NoneType' object has no attribute 'running' | EDIT:FIXED
That's fixed now.
These two Code: | Traceback (most recent call last):
File "myth2avi.py", line 785, in ?
f = subGUI()
File "myth2avi.py", line 85, in __init__
self.item = QCheckListItem(self.item_2,None,QCheckListItem.CheckBox)
TypeError: argument 3 of QCheckListItem() has an invalid type |
Code: | Traceback (most recent call last):
File "myth2avi.py", line 203, in setupOptions
self.bitrate.setText(None)#self.__tr('0'))
TypeError: argument 1 of QLineEdit.setText() has an invalid type | EDIT:FIXED
are version differences, I'll search through and anytime I've assigned None as a string object set it to self.__tr(''), that should fix that.
Quote: | Selecting Xvid, I can get somewhere, I click Queue Job and off I go. For a few seconds anyway until I get
Code: | Mythtranscode= /usr/bin/mythtranscode -f /tmp/29308 -l -c 1021 -s 20061212185900 -v none
Traceback (most recent call last):
File "myth2avi.py", line 595, in run
self.export(obj)
File "myth2avi.py", line 676, in export
self.kill()
File "myth2avi.py", line 762, in kill
self.base.reap(self.enprocess.pid)
AttributeError: enprocess |
| EDIT:FIXED
I believe that is mythtranscode exiting without doing much. Because I had sooo much grief with it before I used Popen4, the debug is missing on it, other than spurting out the command.
If you can run Code: | /usr/bin/mythtranscode -f /tmp/ -l -c 1021 -s 20061212185900 | from a terminal and post the output, that will decide if it's a command formulation problem or a mythtranscode problem.
Thanks. |
|
Back to top |
|
|
pteppic l33t
Joined: 28 Nov 2005 Posts: 781
|
Posted: Mon Jan 29, 2007 10:43 pm Post subject: |
|
|
Added a few checking routines, and support to export to mpg for DVD (pal and ntsc). |
|
Back to top |
|
|
immudium Guru
Joined: 12 Oct 2004 Posts: 332 Location: Utah
|
Posted: Tue Jan 30, 2007 8:54 am Post subject: |
|
|
OK, I had some difficulty getting the gui to come up and had to make some edits to make it work. The biggest problem seemed to be determining the path to the recordings.
This is the error I was getting:
Code: |
Traceback (most recent call last):
File "myth2avi.py", line 886, in ?
f = subGUI()
File "myth2avi.py", line 62, in __init__
self.programs=self.getPrograms()
File "myth2avi.py", line 277, in getPrograms
self.getBaseDir()
File "myth2avi.py", line 264, in getBaseDir
q=QSqlQuery( 'select data from settings where value="RecordFilePrefix" limit 1;' %self.LocalHostName, db )
TypeError: not all arguments converted during string formatting
|
And this is the patch I hacked out to make it work:
Code: |
--- myth2avi.py 2007-01-30 01:21:51.000000000 -0700
+++ myth2avi.py.edit 2007-01-30 01:22:57.000000000 -0700
@@ -253,18 +253,22 @@
def getBaseDir(self):#get storage dir from mythconverg
db=QSqlDatabase('QMYSQL3',self.DBName)
+ db.setUserName(self.DBUserName)
db.setPassword(self.DBPassword)
db.setDatabaseName(self.DBName)
db.setHostName(self.DBHostName)
- db.setPassword(self.DBPassword)
- db.open()
+ if not db.open():
+ print "Error opening database"
+ print db.lastError().driverText()
+ print db.lastError().databaseText()
+ sys.exit(1)
if self.LocalHostName:
q=QSqlQuery( 'select data from settings where hostname="%s" and value="RecordFilePrefix";' %self.LocalHostName, db )
else:
- q=QSqlQuery( 'select data from settings where value="RecordFilePrefix" limit 1;' %self.LocalHostName, db )
+ q=QSqlQuery( 'select data from settings where value="RecordFilePrefix" limit 1;' , db)
q.next()
self.basename=q.value(0).toString().ascii()
- db.close()
+ db.close()
#enddef
def getDate(self,prog):#for multiple episodes with no titles ok
@@ -299,7 +303,8 @@
self.index+=1
db.close()
for q in range(len(data)):
- filename='%s%s'%(self.basename,data[q].basename)
+ filename='%s/%s'%(self.basename,data[q].basename)
+ print filename
if not os.access(filename,os.R_OK):
data.pop(q)
if len(data)<1:
@@ -704,7 +709,7 @@
chanid=str(item.chanid)
starttime=str(item.starttime).replace('T','').replace('-','').replace(':','')
dt=float(item.length)
- mcstring='%s -c %s -s %s -v none'%(mcstring,chanid,starttime)
+ mcstring='%s -c %s -s %s -m -v none'%(mcstring,chanid,starttime)
passes=item.Epasses
#do passes
for pas in range(1,passes+1):
|
I pretty much suck at python, so I apologize that I could not properly implement some of the fixes. For example, the second edit at line 299, the path stored in mythconverg does not have a trailing backslash so the line should probably be tokenized and one inserted as appropriate, but I have no idea how to do that in Python.
The third edit at line 704 is me messing around. Mythtranscode still refuses to work and I still haven't been able to figure out why. It will just hang forever. Here's the output from the command line:
Code: |
/usr/bin/mythtranscode -f /tmp -c 1041 -s 20070130010400 -v important
2007-01-30 01:36:17.564 Using runtime prefix = /usr
2007-01-30 01:36:17.578 New DB connection, total: 1
2007-01-30 01:36:17.583 Enabled verbose msgs: important
2007-01-30 01:36:17.584 New DB connection, total: 2
2007-01-30 01:36:17.596 Using protocol version 31
0: start_time: 1773.839 duration: 11.680
1: start_time: 1773.811 duration: 11.667
stream: start_time: 19709.007 duration: 130.093 bitrate=14411 kb/s
2007-01-30 01:36:17.730 mythtranscode: 0% Completed @ -47.619 fps.
|
However, if I add the --mpeg2 (-m) option, it appears to complete and writes out the new .tmp file. Maybe mythtranscode doesn't work with HDTV files except with the -m option? I haven't found an answer yet. But either way, it might be nice if QTMyth2avi could support this option as it would export the file with only the cut points removed and mencoder could then handle all of the encoding duties itself.
Anyway, nice job. I think it's really coming along. Let me know if I can help with anything. |
|
Back to top |
|
|
pteppic l33t
Joined: 28 Nov 2005 Posts: 781
|
Posted: Tue Jan 30, 2007 10:47 am Post subject: |
|
|
Thanks for the feedback, and the error was mainly caused by a copy of the 'open the database' bit being copied from a non working version, and my having a DBLocalHostName, so the 'single host' bit went unchecked.
If you do have more than one box using mythbackend on your system, can you post the output of Code: | echo 'select data from settings where value="RecordFilePrefix"'|mysql -umythtv -pmythtv -h<myth-DB-Host> mythconverg | please...
Code: | + filename='%s/%s'%(self.basename,data[q].basename) | Has been left the same, but self.basename has a check to make sure the last character is '/' now though, as it's safer than changing each instance it's used.
I can't add -m as a mythtranscode option, as not all input files are going to be mpeg, and all we want it to really do is dump the file to fifos, not really transcode it.
On that subject Quote: | /usr/bin/mythtranscode -f /tmp -c 1041 -s 20070130010400 -v important
2007-01-30 01:36:17.564 Using runtime prefix = /usr
2007-01-30 01:36:17.578 New DB connection, total: 1
2007-01-30 01:36:17.583 Enabled verbose msgs: important
2007-01-30 01:36:17.584 New DB connection, total: 2
2007-01-30 01:36:17.596 Using protocol version 31
0: start_time: 1773.839 duration: 11.680
1: start_time: 1773.811 duration: 11.667
stream: start_time: 19709.007 duration: 130.093 bitrate=14411 kb/s
2007-01-30 01:36:17.730 mythtranscode: 0% Completed @ -47.619 fps. |
That is as far as it will get unless you open another terminal and run the mencoder line too, then they should then both work together. |
|
Back to top |
|
|
immudium Guru
Joined: 12 Oct 2004 Posts: 332 Location: Utah
|
Posted: Tue Jan 30, 2007 5:00 pm Post subject: |
|
|
pteppic wrote: |
If you do have more than one box using mythbackend on your system, can you post the output of Code: | echo 'select data from settings where value="RecordFilePrefix"'|mysql -umythtv -pmythtv -h<myth-DB-Host> mythconverg | please...
|
OK, I have two mythbackends.
Code: | $ echo 'select data from settings where value="RecordFilePrefix"'|mysql -umythtv -pmythtv -h192.168.0.2 mythconverg
data
/myth/hdtv
/myth/record
|
pteppic wrote: | That is as far as it will get unless you open another terminal and run the mencoder line too, then they should then both work together. |
Ah, I see. Something was going wrong and the progress bar would just jump to 100% and no error would be printed and no encoded file written so I was running it on the command line trying to understand what was going on. So I suppose that wasn't it. Probably something dumb I was doing trying to hack around in the code. But either way with the latest version it seems to be working fine and I finally got my first x264 encoded file out! I'm now trying some of the other encoding options like the NTSC dvd support and so forth. Will post back if I spot anything. Thanks for your help. |
|
Back to top |
|
|
pteppic l33t
Joined: 28 Nov 2005 Posts: 781
|
Posted: Tue Jan 30, 2007 7:04 pm Post subject: |
|
|
immudium wrote: | OK, I have two mythbackends.
Code: | $ echo 'select data from settings where value="RecordFilePrefix"'|mysql -umythtv -pmythtv -h192.168.0.2 mythconverg
data
/myth/hdtv
/myth/record
|
|
That is what I was afraid of, sorry to be a pain, but can you please do Code: | echo 'select * from settings where value="RecordFilePrefix"'|mysql -umythtv -pmythtv -h192.168.0.2 mythconverg | I need to try and get which value is for which machine without using DBLocalHostName from mysql.txt, Thanks.
immudium wrote: | I'm now trying some of the other encoding options like the NTSC dvd support and so forth. |
I know the PAL profile works because I tested it, but don't have the hardware to test NTSC so would be grateful if you could. |
|
Back to top |
|
|
immudium Guru
Joined: 12 Oct 2004 Posts: 332 Location: Utah
|
Posted: Wed Jan 31, 2007 5:28 am Post subject: |
|
|
pteppic wrote: |
That is what I was afraid of, sorry to be a pain, but can you please do Code: | echo 'select * from settings where value="RecordFilePrefix"'|mysql -umythtv -pmythtv -h192.168.0.2 mythconverg | I need to try and get which value is for which machine without using DBLocalHostName from mysql.txt, Thanks.
|
No problem. Glad to help.
Code: | $ echo 'select * from settings where value="RecordFilePrefix"'|mysql -umythtv -pmythtv -h192.168.0.2 mythconvergkk
value data hostname
RecordFilePrefix /myth/hdtv pegasus
RecordFilePrefix /myth/record stargate |
I hope that helps. Anything at all, let me know.
pteppic wrote: |
immudium wrote: | I'm now trying some of the other encoding options like the NTSC dvd support and so forth. |
I know the PAL profile works because I tested it, but don't have the hardware to test NTSC so would be grateful if you could. |
I did a quick test with the NTSC DVD profile and the video came out kind of funky looking with the colors all messed up and shifting around. I'll do some more testing and see if I can figure out what's wrong. Everything else looks good for me though. |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|