Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
What exactly are you looking for? x264 is already pretty darn good at handling BR/HD-DVD sources. If you're looking for chapter support, I think there was some initial work done by one of the devs, but nothing close to "working" yet. Besides chapter/subtitle support, I'm not quite sure what else is out there.

I suppose i'm finding it hard to understand why the additional steps (BDinfo and tsmux) are necessary, and why this functionality couldn't be built into HB. Of course this could be more about my understand then how HB handles Blu-ray sources!

Just hoping for it to be as simple as transcoding a DVD with HB, where I only need to rip the disk and HB can do all the rest. Chapter support would also be good, as it's annoying to have titles without it on ATV due to it's limitations in FFwd'ing movies.
 
I suppose i'm finding it hard to understand why the additional steps (BDinfo and tsmux) are necessary, and why this functionality couldn't be built into HB. Of course this could be more about my understand then how HB handles Blu-ray sources!

Just hoping for it to be as simple as transcoding a DVD with HB, where I only need to rip the disk and HB can do all the rest. Chapter support would also be good, as it's annoying to have titles without it on ATV due to it's limitations in FFwd'ing movies.

I'm sure that is where it will eventually get... at least one of the devs seems to be really interested in bluray encoding.
 
I'm sure that is where it will eventually get... at least one of the devs seems to be really interested in bluray encoding.

Like I say though, not putting Handbrake down, it's just that the developers have done such a good job with encoding DVD sources to AppleTVs that they have set expectation high, therefore any complaint I make is their own fault :D
 
Automating Blu-Ray Backup with tsMuxeR and HandBrakeCLI: Redux

Automating Blu-Ray Backup with tsMuxeR and HandBrakeCLI: Redux


Backing up Blu-Ray's for AppleTV has a long way to go before it becomes as easy as backing up DVD's on a Mac. I've been playing around with this a lot and have written a few scripts that allow for easy meta file creation, batch m2ts muxing and batch HandBrake encoding.

I'm using VMware Fusion/XP Pro on an 8-core Mac Pro. My workflow is as follows:
  1. Use AnyDVDHD to copy all the BD disks you want to batch process to a BatchRip Folder.
  2. Use the tsMuxerGUI as you normally would but click "Copy to clipboard" instead of "Start muxing"
  3. Double-click the tsMuxeR_metaFile.cmd script. This will copy the metadata into a new metafile in the bd movie's folder. This filename is tagged with a search string to allow the next script to find it.
  4. Repeat the last two steps on all your bd rips.
  5. When ready, double-click the run_batchtsmuxer.cmd script. This will find all the tagged metafiles in your batch folder and launch the batchtsmuxer.cmd script to mux them one-by-one according to the options set in their metafile.
  6. Once the m2ts files are muxed, we encode on the Mac side using HandBrakeCLI.
  7. I create an iCal alarm to execute the batchEncodeHD.scpt at midnight so when I wake up, Voila! All the m2ts files are now m4v's!

REQUIREMENTS:
  1. If you haven't yet: read, follow and understand CaveMan's instructions on the MacRumors forum for ripping and encoding BD disks. https://forums.macrumors.com/posts/6012016/
  2. Windows for AnyDVD and tsMuxerGUI and tsMuxer command line tool for ripping and muxing. MacOSX and HandBrakeCLI for encoding.
  3. In order to execute, you need to set up the input, output and script paths in these scripts. The scripts are commented and should be relatively easy to follow.
  4. The meta and m2ts files you want to convert need to have some sort of a search string to identify them as the files you want to process (Example: Iron Man_BD.m2ts). The search string will be removed from the resulting m4v. You must also specify this search string (Example: "_BD.m2ts") in the batchEncodeHD.scpt.
  5. Most of this based on my post ""Automating DVD Backup with FairMount, HandBrake and iTunes"
I'd suggest looking over the batch encoding with handbrake section if you aren't familiar with this process. https://forums.macrumors.com/threads/600467/


Here are the scripts:

Happy Encoding!

tsMuxeR_metaFile.cmd

Code:
@echo off
:: tsMuxeR_metaFile.cmd - UPDATED: 01-23-2009

:: This script uses the command line extension Clipboard. This allows the tsMuxeR metadata copied to the clipboard to be accessed via command prompt. It can be found at http://www.steve.org.uk/Software/clipboard/clipboard.zip 

:: Until someone can point out a better way to do this, you will need to edit the commands below to create the metafile in the right location with the right filename. In the second FOR command, you need to include the number of tokens "\" in your directory tree to obtain the path to your BD folders and get their names, in my case this would translate to Z:\MyDisk\BatchRip\Iron_Man\. The tokens=1,2,3,4 for my file path. You will also need to specify each token in the output command at the end: %%n\%%o\%%p\%%q\%%q_BD.meta would create the metafile in Z:\MyDisk\BatchRip\Iron_Man\Iron_Man_BD.meta. As you'll notice the BD rip's parent folder token is entered twice to name the file with the BD's name followed by a search string. I know this is complicated, but I'm a Mac guy and I'm surprised I even got this far.

clipboard | for /f "skip=1 eol=# delims=, tokens=2" %%i in ('findstr "BDMV"') do echo %%i | for /f "delims=\ tokens=1,2,3,4" %%n in (%%i) do clipboard > %%n\%%o\%%p\%%q\%%q_BD.meta

:: endscript



run_batchtsmuxer.cmd

Code:
:: run_batchtsmuxer.cmd UPDATED: 01-23-2009

:: this script is used in conjunction with batchtsmuxer.cmd

@echo off

:: set your input directory to process the specified meta files
set batchfolder="C:\Documents and Settings\userloginname\My Documents\Batch Rip"

cd /d %batchfolder%

:: set the search string appended to the filename of the meta file ex. "*_BD.meta"
for /r %%i in (*_BD.meta) do set metafile="%%i" & call batchtsmuxer.cmd

:: endscript



batchtsmuxer.cmd

Code:
:: batchtsmuxer.cmd UPDATED: 01-23-2009

:: place this file in your batch folder
:: this script is used in conjunction with run_batchtsmuxer.cmd

for /f "delims=." %%n in ("%metafile%") do set outfile="%%~dpnn.m2ts"
if exist %outfile% (
echo Output file SKIPPED because it already exists
) else (
echo "Creating %outfile% from %metafile%"
"C:\Program Files\tsMuxeR\tsMuxeR.exe" %metafile% %outfile%
echo "  - - - - - - - - - - - - - - - -"
)
:: endscript



batchEncodeHD.scpt

Code:
---------- BatchEncodeHD.scpt ----------
---------- Updated: 01-22-2009 ----------


global batchScript

---------- Properties ----------

-- Search String: This script's default search string is "_BD.m2ts".  Any .m2ts file name with this search string (located in the input directory) will be processed with HandBrake.
property searchString : "_BD.m2ts"

-- The input directory to process all m2ts files with a specified string appended to the filename. Default path is: ~/Movies/BatchRip.
property inputPath : "~/Movies/BatchRip"

-- The output directory for all output files. Default is: ~/Movies/BatchEncode.
property outputPath : "~/Movies/BatchEncode"

-- The path to your HandBrakeCLI-batchHD.sh script. Default is: ~/Movies/BatchScripts/HandBrakeCLI-batchHD.sh
property scriptPathHD : "~/Movies/BatchScripts/HandBrakeCLI-batchHD.sh"

-- Set your HandBrakeCLI encode settings.  Default is the AppleTV preset, 1280w, with quality set at 57%. For more info in setting parameters, visit http://handbrake.fr and read the CLI Guide Wiki. 
property encodeSettings : "-e x264 -q 0.56 -a 1,1 -E faac,ac3 -B 160,auto -R 48,Auto -6 dpl2,auto -f mp4 -4 -w 1280 -m -x level=30:cabac=0:ref=3:mixed-refs=1:bframes=6:weightb=1:direct=auto:no-fast-pskip=1:me=umh:subq=7:analyse=all"

---------- Optional Properties ----------

-- Setup Growl Support: Set useGrowl to yes and set the path to the GrowlNotifyLib.scpt.
property useGrowl : no -- If you have growl, set to yes.
property growlTitle : "Batch Encode"
property growlMessage : "Your HandBrake Encodes Are Done!"
property growlLibraryPath : POSIX file "Users/userloginname/Movies/BatchScripts/GrowlNotifyLib.scpt" -- Set the path to the GrowlNotifyLib.scpt.

---------- Encode Script ----------

try
	if useGrowl is yes then setGrowl(growlTitle) of (load script growlLibraryPath)
end try
try
	createBatchScript()
	mkDir(outputPath)
	with timeout of 36000 seconds
		doScript()
		growlMe(growlTitle, growlMessage) of (load script growlLibraryPath)
	end timeout
end try

---------- Sub-routines ----------
to doScript()
	tell application "Terminal"
		activate
		tell application "System Events" to keystroke "n" using {command down}
		do script batchScript in tab 1 of window 1
		repeat until tab 1 of window 1 is not busy
			delay 4
		end repeat
	end tell
end doScript

to setInput(batchFolder)
	set inputDir to quoted form of batchFolder
end setInput

to createBatchScript()
	set spc to " "
	set inputDir to setInput(inputPath)
	set logFile to " | tee " & escapePath(outputPath)
	set outputDir to quoted form of outputPath
	set batchScript to escapePath(scriptPathHD) & spc & inputDir & spc & outputDir & spc & quoted form of searchString & spc & quoted form of encodeSettings & logFile & "/BatchEncodeHD.log" & " wait"
end createBatchScript

on escapePath(outputPath)
	set the search_string to " "
	set the replacement_string to "\\ "
	set AppleScript's text item delimiters to the " "
	set the text_item_list to every text item of the outputPath
	set AppleScript's text item delimiters to the replacement_string
	set the new_item_name to the text_item_list as string
	set AppleScript's text item delimiters to ""
	set the outputPath to new_item_name
end escapePath

on mkDir(somepath)
	do shell script "mkdir -p " & escapePath(somepath)
end mkDir

---------- End Script ---------



HandBrakeCLI-batchHD.sh

Code:
#!/bin/sh

#  UPDATED: 01-22-2009
#  HandBrakeCLI-batchHD.sh is a script to batch execute the HandBrakeCLI specifially for encoding m2ts files to m4v.

#############################################################################
# globals

# const global variables
scriptName=`basename "$0"`
scriptVers="2.0"
scriptPID=$$
skipDuplicates=1 	# if this option is off,
					# the new output files will overwrite existing files
E_BADARGS=65

# set the global variables to default
toolName="HandBrakeCLI"
toolPath="/Applications/$toolName"
toolTrackArgs="-t 0" # scans dvd title list for all tracks
inputSearchDir=$1    # set input search directory: "~/Movies/Batch Rip"
outputDir="$2"       # set output directory: "~/Movies/Batch Encode"
searchString="$3" # Search String: Any .m2ts file name with this search string (located in the input directory) will be processed with HandBrake (Example: "_BD.m2ts").
toolArgs="$4"        # set handbrakecli encode settings: "-e x264 -q 0.56 -a 1,1 -E faac,ac3 -B 160,auto -R 48,Auto -6 dpl2,auto -f mp4 -4 -w 1280 -m -x level=30:cabac=0:ref=3:mixed-refs=1:bframes=6:weightb=1:direct=auto:no-fast-pskip=1:me=umh:subq=7:analyse=all"



#############################################################################
# functions

verifyFindCLTool()
{
	# attempt to find the HandBrakeCLI if the script toolPath is not good
	if [ ! -x "$toolPath" ];
	then
		toolPathTMP=`PATH=.:/Applications:/:/usr/bin:/usr/local/bin:$HOME:$PATH which $toolName | sed '/^[^\/]/d' | sed 's/\S//g'`
		
		if [ ! -z $toolPathTMP ]; then 
			toolPath=$toolPathTMP
		fi
	fi	
}

displayUsageExit()
{
	echo "Usage: $scriptName [options]"
	echo ""
	echo "    -h, --help              Print help"
	echo "    arg1:   inputSearchDir=<string>   Set input directory to process all m2ts files in it (default: /Movies/BatchRip)"
	echo "    arg2:   outputDir=<string>        Set output directory for all output files (default: ~/Movies/BatchEncode)"
	echo "    arg3:   searchString <string>     Set the text appended to the filename of the .m2ts/s to encode (default: _BD.m2ts)"
	echo "    arg4:   toolArgs=<string>         Set the HandBrakeCLI encode settings (example: -e x264 -q 0.56 -a 1,1 -E faac,ac3 -B 160,auto -R 48,Auto -6 dpl2,auto -f mp4 -4 -w 1280 -m -x level=30:cabac=0:ref=3:mixed-refs=1:bframes=6:weightb=1:direct=auto:no-fast-pskip=1:me=umh:subq=7:analyse=all) "
	
	if [ -x "$toolPath" ];
	then
		echo "   $toolName possible options"
		mForkHelp=`$toolPath --help 2>&1`
		mForkHelpPt=`printf "$mForkHelp" | egrep -v '( --input| --output| --help|Syntax: |^$)'`
		printf "$mForkHelpPt\n"
	else
		echo "    The options available to HandBrakeCLI except -o  and -i"
		if [ -e "$toolPath" ];
		then
			echo "    ERROR: $toolName command tool is not setup to execute"
			echo "    ERROR: attempting to use tool at $toolPath"
		else
			echo "    ERROR: $toolName command tool could not be found"
			echo "    ERROR: $toolName can be install in ./ /usr/local/bin/ /usr/bin/ ~/ or /Applications/"
		fi
	fi
	
	echo ""
	
	exit $E_BADARGS
}

makeFullPath()
{
   aReturn=""
   currentPath=`pwd`
   
   if [ $# -gt 0 ]; then
      inPath="$*"
      
      # put full path in front of path if needed
      aReturn=`echo "$inPath" | sed -e "s!~!$currentPath/!" -e "s!^./!$currentPath/!" -e "s!^\([^/]\)!$currentPath/\1!" -e "s!^../!$currentPath/../!"`
      
      # remove ../ from path - only goes 4 deep
      aReturn=`echo "$aReturn" | sed -e 's!/[^\.^/]*/\.\./!/!g' | sed -e 's!/[^\.^/]*/\.\./!/!g' | sed -e 's!/[^\.^/]*/\.\./!/!g' | sed -e 's!/[^\.^/]*/\.\./!/!g'`
      
      # cleanup by removing //
      aReturn=`echo "$aReturn" | sed -e 's!//!/!g'`
   fi
   
   echo "$aReturn"
}


#############################################################################
# MAIN SCRIPT

# initialization functions
verifyFindCLTool

# fix input and output paths to be full paths
inputSearchDir=`makeFullPath "$inputSearchDir"`
outputDir=`makeFullPath "$outputDir"`

# see if the output directory needs to be created
if [ ! -e "$outputDir" ]; then
	mkdir -p "$outputDir"
fi

# sanity checks
if [[ ! -x $toolPath || ! -d $inputSearchDir || ! -d $outputDir || -z "$toolArgs" ]]; then
	displayUsageExit
fi

# display the basic setup information
echo "$scriptName $scriptVers"
echo "  Start: `date`"
echo "  Input directory: $inputSearchDir"
echo "  Output directory: $outputDir"
echo "  Search string: $searchString"
echo "  Tool path: $toolPath"
echo "  Tool args: $toolArgs"
echo "  - - - - - - - - - - - - - - - -"

# find all the m2ts files in the input directory tree
find "$inputSearchDir" -type f -name "*$searchString" | while read i ; do

# set the bd movie name to output
echo "$i"
dvdName=`basename "$i" $searchString`

# execute handbrakecli and skip output files that already exist.  
if [[ ! -e  $outputDir/"$dvdName".m4v || skipDuplicates -eq 0 ]];
then
	$toolPath -i "$i" -o "$outputDir"/"$dvdName".m4v $toolArgs 	& wait


else
	echo "   Output file SKIPPED because it ALREADY EXISTS" & wait	
fi
done

# END SCRIPT
 
So, clearly, we are not at the point where Handbrake allows you to convert Blu-Ray to AppleTV with the ease of DVDs today. I don't want to run around with a bunch of Windows utilities in a virtual machine hacking together files just to make an encode (And this is not a knock on Handbrake: I absolutely love this software and I know they are working hard on these things). I just prefer to stick to the Mac and I don't want to jump through a whole bunch of hoops.

One might also want to point out that Handbrake 'SVN' requires compiling the software yourself. Possible, but not something the average Joe is going to do (or be interested in doing.) How often are the SVN changes dumped in to the pre-compiled binaries?
 
Macrazee it isn't all HandBrakes issue, the Mac in general sucks with BD support for playback/ripping so until other Mac programs are sorted for BD Ripping it won't be as ease to rip as DVD's are at the moment.
 
Macrazee it isn't all HandBrakes issue, the Mac in general sucks with BD support for playback/ripping so until other Mac programs are sorted for BD Ripping it won't be as ease to rip as DVD's are at the moment.

Yeah, I understand the Mac's issues with Blu-Ray video. But it appears you need to go through a lot of hoops and use third-party software even on the Windows side...
 
Yeah, I understand the Mac's issues with Blu-Ray video. But it appears you need to go through a lot of hoops and use third-party software even on the Windows side...

thus why i am holding out on buying a BR drive, by the time apple/somebody brings proper support out the drives will be half the cost again, so im not complaining
 
I have a BD with Presentation Graphics, if I encode using HandBrake will they still be included?

Also what are they? I haven't come across them before which is why I ask.
 
honestly with all the money going into this process, why not just buy a standalone blu ray player?

I don't see why you would want to attempt to downgrade the quality of a HD movie. I like my movie in 1080p and DTS MA. If I have to get up and walk a few feet just to change a disc, I don't think I'm going to feel the strain. Here's a novel idea also, take care of your discs.

now with digital copies being more common, i use that on my standard def TVs (sorry we haven't upgraded EVERY tv yet), but more for travel. I admit I do love the convience of the few movies I do keep on a computer and access them either via the media center extender (xbox 360 gasp!) or PS3 (egad), but until I can plug my iphone (relief!) and get full HD and sound, I'll stick to disc. Also let the internet companies stop capping data each month and ratch up the speed, and maybe we'll make some progress.

Oh and I like to own the movie, not rent it.

Different strokes, different folks.
 
I've been experimenting with using eac3to/tsmuxer to handle all of the work in converting Bluray/HD-DVD titles, including output of a subtitles and a chapters file.

However, I'm having troubles with the chapters file... the chapters get progressively further off as the movie goes on. Has anyone else noticed this, and if so, have a solution to get the timing correct agian?

For example, an HD-DVD I ripped last night has chapter markers that are approximately 8 seconds off by the last chapter. I still need to test if chapter markers from a Bluray title will exhibit the same behavior.
 
I thought this was supposed to be the computer "for the rest of us". Yeesh! And the picture is crap. Where is the magic "stick the blu-ray in the drive and suck my blu-ray into the system automatically and let me watch it in 1080p" button?
 
Sorry for my bad english but finally I got subtitles to work. What I have seen in this thread many has problems with subtitles and blu-ray backups to Apple TV. This is how I got it to work:

1. Backup the movie with AnyDVD HD/TSmuxer. (Windows)

2. Demux only the subtitle (change to Arial) with TSMuxer to an sup-file (Windows)

3. Convert the sup-file to srt with suprip (not subrip). Painful action, suprip does not recognise any letters at the begninning... Save the srt. (Windows)

4. Open the srt file with Notepad att save it as UTF-8. (Windows)

5. Convert the movie with handbrake 0.9.3 (Mac OS X)

6. Open the srt file with SubCleaner (Mac OS X)

7. Add the subtitle with muxo (Mac OS X)

Finally you got an Movie-file you can play on your Apple TV with softsubs. The way Apple-TV handles subs is a little unusual but it works.

First I used Submerge to "burn in" the subtitles but i got problems with extreme judder after that (I have a TV that can handle 24 fps at 60 Hz without judder).
 
You can skip part 4 on windows and change 6 from SubCleaner to Jubler which I found better personally but it comes down to taste:eek::D.
 
You can skip part 4 on windows and change 6 from SubCleaner to Jubler which I found better personally but it comes down to taste:eek::D.

Probably but I used Notepad and resaved because I had some problems with swedish chars. I do not know if that was the cup o tee, but after that it worked. And 5 sec for resave I can live with :)

Next time I will try Jubler.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.