RED 2
-
- Posts: 8
- Joined: Sun Mar 09, 2014 12:24 am
Re: RED 2
I want to thank everyone for the work you put into this. I was fortunate enough to Google my way out of the problem rather quickly thanks to you all.
Re: RED 2
I just want to add that I've now used this script on several movies (Red2, Hunger Games, Hunger Games Catching Fire, etc), and the script works every time. I've added a descriptive "usage" header to the script. Thanks again.
Code: Select all
# /usr/bin/perl find-playlist.perl <bluray root dir>
#
# This script will find the playlist that has matching mpls and clipinfo segments.
# The one with the longest number of segments is typically the correct main movie file.
#
# Example:
#
# Create a movie directory (e.g. RED2) and copy BDMV/CLIPINF and BDMV/PLAYLIST to it.
# You should now have a structure like this:
#
# RED2/BDMV/CLIPINF
# RED2/BDMV/PLAYLIST
#
# Then execute the script:
#
# /usr/bin/perl find-playlist.perl RED2
#
#
my $path = shift;
my $clips = read_m2ts("$path/BDMV/CLIPINF", ".clpi");
my $playlists = read_m2ts("$path/BDMV/PLAYLIST", ".mpls");
foreach my $list (sort {$a <=> $b} keys %{$playlists}) {
my @clp = @{$playlists->{$list}};
my @playlist = ();
my $next = $clp[0];
push(@playlist, $next);
my $last = $next;
$next = ${$clips->{$last}}[0];
if($next && $next != $last) {
while ($next && $next != $last) {
push(@playlist, $next);
$last = $next;
$next = ${$clips->{$last}}[0];
}
}
my $mpls = join(",",@clp);
my $cliplist = join(",",@playlist);
if( $mpls eq $cliplist ) {
printf("$list :\n");
printf(" mpls -> $mpls\n");
printf(" clipinfo -> $cliplist\n");
}
}
sub read_m2ts {
my $dir = shift;
my $ext = shift;
my $out = {};
opendir(DIR, "$dir") || die "can't open $dir";
my @dir = readdir(DIR);
closedir DIR;
foreach my $file ( grep{ /$ext$/ } @dir ) {
open(XIN, "<$dir/$file");
my @infile = <XIN>;
chomp @infile;
my $tmp = join(" ", @infile);
my @stuff = $tmp=~m/\d\d\d\d\dM2TS/g;
my @streams = ();
foreach my $strm (@stuff) {
my $a = $strm;
$a =~s/^0*//;
$a =~s/M2TS$//;
push(@streams, $a);
}
my $fnum = $file;
$fnum =~s/$ext$//;
$fnum =~s/^0*//;
$out->{$fnum}=[@streams];
}
return $out;
}
-
- Posts: 8
- Joined: Sat Jul 05, 2014 3:42 am
Re: RED 2
I am confused here are we saying that this code change is required and I must upload Pearl to correctly RIP this File on Hand Brake or are we saying that this is answer to someone specific code Problem. I've incurred no uses making my MKV folders but when I load them into Hand Break I have like a 100 Different options to convert. At most I find 2 or 3 usally an extended version or and Alternate ending but in this Case I have 171 options of the Film I have started to convert all of them that are 1:55:48 (This includes 19, 79, 107, 151) but without ripping all 171 of these and burning up my processors to find out which one is correct I want to know if anyone knows which one is the correct one, I have seen this in several movies where the security is a such that it Blast with multiple versions of the movie and for the most part the movie is correct but there is spots where it swaps small 20 sec segment (Like Expendables 2) for another screen in the movie or it skips back 20 seconds making the movie have the record effect were the needle jumps back and forward. In this Case RED2_RENTAL this is what I have gotten. I can confirm 19 is one that jumps around I guess 170 to go unless anyone has any suggestions. mine doesn't go up to 577 so that out.
-
- Posts: 75
- Joined: Mon Mar 28, 2016 3:57 am
Re: RED 2
I'm in Canada with the Eone Blu-ray, UPC 774212929649. The 00674.mpls(1) source file on this disc matches everything exactly as shown above, including the segment map. Is this also correct for the Eone disc? Can anyone confirm?bottleneck70 wrote:UPC 77421200502...
Name: RED 2
Source file name: 00674.mpls(1)
Duration: 1:55:48
Chapters count: 17
Size: 31.5 GB
Segment count: 15
Segment map: 505,502,509,507,513,501,510,512,506,508,504,74,515,511,503
-
- Posts: 99
- Joined: Tue Aug 14, 2018 5:19 am
Re: RED 2
I was not able to get this script to run on a High Sierra Mac... Ideas?
=========================
TopSecretMac:~ robert$ perl /Users/robert/Dropbox/Perl\ Scripts/RED_2.pl /Volumes/RED_2_RENTAL
Backslash found where operator expected at /Users/robert/Dropbox/Perl Scripts/RED_2.pl line 8, near "$b\"
(Missing operator before \?)
Backslash found where operator expected at /Users/robert/Dropbox/Perl Scripts/RED_2.pl line 8, near "$playlists\"
(Missing operator before \?)
Backslash found where operator expected at /Users/robert/Dropbox/Perl Scripts/RED_2.pl line 8, near ") \"
(Missing operator before \?)
Backslash found where operator expected at /Users/robert/Dropbox/Perl Scripts/RED_2.pl line 9, near "->\"
(Missing operator before \?)
Backslash found where operator expected at /Users/robert/Dropbox/Perl Scripts/RED_2.pl line 9, near "$list\"
(Missing operator before \?)
Backslash found where operator expected at /Users/robert/Dropbox/Perl Scripts/RED_2.pl line 9, near "}\"
(Missing operator before \?)
Backslash found where operator expected at /Users/robert/Dropbox/Perl Scripts/RED_2.pl line 16, near "->\"
(Missing operator before \?)
Backslash found where operator expected at /Users/robert/Dropbox/Perl Scripts/RED_2.pl line 16, near "$last\"
(Missing operator before \?)
Backslash found where operator expected at /Users/robert/Dropbox/Perl Scripts/RED_2.pl line 16, near "}\"
(Missing operator before \?)
Backslash found where operator expected at /Users/robert/Dropbox/Perl Scripts/RED_2.pl line 18, near ") \"
(Missing operator before \?)
Backslash found where operator expected at /Users/robert/Dropbox/Perl Scripts/RED_2.pl line 19, near ") \"
(Missing operator before \?)
Backslash found where operator expected at /Users/robert/Dropbox/Perl Scripts/RED_2.pl line 22, near "->\"
(Missing operator before \?)
Backslash found where operator expected at /Users/robert/Dropbox/Perl Scripts/RED_2.pl line 22, near "$last\"
(Missing operator before \?)
Backslash found where operator expected at /Users/robert/Dropbox/Perl Scripts/RED_2.pl line 22, near "}\"
(Missing operator before \?)
Backslash found where operator expected at /Users/robert/Dropbox/Perl Scripts/RED_2.pl line 23, near "}\"
(Missing operator before \?)
Backslash found where operator expected at /Users/robert/Dropbox/Perl Scripts/RED_2.pl line 24, near "}\"
(Missing operator before \?)
Backslash found where operator expected at /Users/robert/Dropbox/Perl Scripts/RED_2.pl line 29, near ") \"
(Missing operator before \?)
Backslash found where operator expected at /Users/robert/Dropbox/Perl Scripts/RED_2.pl line 33, near "}\"
(Missing operator before \?)
Backslash found where operator expected at /Users/robert/Dropbox/Perl Scripts/RED_2.pl line 35, near "}\"
(Missing operator before \?)
Can't modify single ref constructor in scalar assignment at /Users/robert/Dropbox/Perl Scripts/RED_2.pl line 3, near "shift;"
syntax error at /Users/robert/Dropbox/Perl Scripts/RED_2.pl line 8, near "foreach "
Can't use global %\ in "my" at /Users/robert/Dropbox/Perl Scripts/RED_2.pl line 9, near "= @\"
syntax error at /Users/robert/Dropbox/Perl Scripts/RED_2.pl line 16, near "->\"
syntax error at /Users/robert/Dropbox/Perl Scripts/RED_2.pl line 18, near "if"
syntax error at /Users/robert/Dropbox/Perl Scripts/RED_2.pl line 22, near "->\"
syntax error at /Users/robert/Dropbox/Perl Scripts/RED_2.pl line 23, near "\}"
syntax error at /Users/robert/Dropbox/Perl Scripts/RED_2.pl line 29, near "if"
syntax error at /Users/robert/Dropbox/Perl Scripts/RED_2.pl line 33, near "\}"
Illegal declaration of subroutine main::read_m2ts at /Users/robert/Dropbox/Perl Scripts/RED_2.pl line 37.
=========================
Thanks,
R
=========================
TopSecretMac:~ robert$ perl /Users/robert/Dropbox/Perl\ Scripts/RED_2.pl /Volumes/RED_2_RENTAL
Backslash found where operator expected at /Users/robert/Dropbox/Perl Scripts/RED_2.pl line 8, near "$b\"
(Missing operator before \?)
Backslash found where operator expected at /Users/robert/Dropbox/Perl Scripts/RED_2.pl line 8, near "$playlists\"
(Missing operator before \?)
Backslash found where operator expected at /Users/robert/Dropbox/Perl Scripts/RED_2.pl line 8, near ") \"
(Missing operator before \?)
Backslash found where operator expected at /Users/robert/Dropbox/Perl Scripts/RED_2.pl line 9, near "->\"
(Missing operator before \?)
Backslash found where operator expected at /Users/robert/Dropbox/Perl Scripts/RED_2.pl line 9, near "$list\"
(Missing operator before \?)
Backslash found where operator expected at /Users/robert/Dropbox/Perl Scripts/RED_2.pl line 9, near "}\"
(Missing operator before \?)
Backslash found where operator expected at /Users/robert/Dropbox/Perl Scripts/RED_2.pl line 16, near "->\"
(Missing operator before \?)
Backslash found where operator expected at /Users/robert/Dropbox/Perl Scripts/RED_2.pl line 16, near "$last\"
(Missing operator before \?)
Backslash found where operator expected at /Users/robert/Dropbox/Perl Scripts/RED_2.pl line 16, near "}\"
(Missing operator before \?)
Backslash found where operator expected at /Users/robert/Dropbox/Perl Scripts/RED_2.pl line 18, near ") \"
(Missing operator before \?)
Backslash found where operator expected at /Users/robert/Dropbox/Perl Scripts/RED_2.pl line 19, near ") \"
(Missing operator before \?)
Backslash found where operator expected at /Users/robert/Dropbox/Perl Scripts/RED_2.pl line 22, near "->\"
(Missing operator before \?)
Backslash found where operator expected at /Users/robert/Dropbox/Perl Scripts/RED_2.pl line 22, near "$last\"
(Missing operator before \?)
Backslash found where operator expected at /Users/robert/Dropbox/Perl Scripts/RED_2.pl line 22, near "}\"
(Missing operator before \?)
Backslash found where operator expected at /Users/robert/Dropbox/Perl Scripts/RED_2.pl line 23, near "}\"
(Missing operator before \?)
Backslash found where operator expected at /Users/robert/Dropbox/Perl Scripts/RED_2.pl line 24, near "}\"
(Missing operator before \?)
Backslash found where operator expected at /Users/robert/Dropbox/Perl Scripts/RED_2.pl line 29, near ") \"
(Missing operator before \?)
Backslash found where operator expected at /Users/robert/Dropbox/Perl Scripts/RED_2.pl line 33, near "}\"
(Missing operator before \?)
Backslash found where operator expected at /Users/robert/Dropbox/Perl Scripts/RED_2.pl line 35, near "}\"
(Missing operator before \?)
Can't modify single ref constructor in scalar assignment at /Users/robert/Dropbox/Perl Scripts/RED_2.pl line 3, near "shift;"
syntax error at /Users/robert/Dropbox/Perl Scripts/RED_2.pl line 8, near "foreach "
Can't use global %\ in "my" at /Users/robert/Dropbox/Perl Scripts/RED_2.pl line 9, near "= @\"
syntax error at /Users/robert/Dropbox/Perl Scripts/RED_2.pl line 16, near "->\"
syntax error at /Users/robert/Dropbox/Perl Scripts/RED_2.pl line 18, near "if"
syntax error at /Users/robert/Dropbox/Perl Scripts/RED_2.pl line 22, near "->\"
syntax error at /Users/robert/Dropbox/Perl Scripts/RED_2.pl line 23, near "\}"
syntax error at /Users/robert/Dropbox/Perl Scripts/RED_2.pl line 29, near "if"
syntax error at /Users/robert/Dropbox/Perl Scripts/RED_2.pl line 33, near "\}"
Illegal declaration of subroutine main::read_m2ts at /Users/robert/Dropbox/Perl Scripts/RED_2.pl line 37.
=========================
Thanks,
R
-
- Posts: 41
- Joined: Wed Sep 18, 2019 8:20 am
Re: RED 2
00679.mpls seems to be correct for the US Amazon retail copy as well
-
- Posts: 12
- Joined: Wed Apr 01, 2020 9:11 pm
Re: RED 2
New version...
Title information
Name: RED 2
Source file name: 00577.mpls
Duration: 1:55:48
Chapters count: 18
Size: 20.7 GB
Segment count: 15
Segment map: 507,504,501,517,502,511,514,513,519,508,503,512,518,516,510
Title information
Name: RED 2
Source file name: 00577.mpls
Duration: 1:55:48
Chapters count: 18
Size: 20.7 GB
Segment count: 15
Segment map: 507,504,501,517,502,511,514,513,519,508,503,512,518,516,510
Re: RED 2
DVDFab confirmed this is the correct playlist for Netflix disc.therapy80301 wrote: ↑Mon May 25, 2020 11:12 amNew version...
Title information
Name: RED 2
Source file name: 00577.mpls
Duration: 1:55:48
Chapters count: 18
Size: 20.7 GB
Segment count: 15
Segment map: 507,504,501,517,502,511,514,513,519,508,503,512,518,516,510
-
- Posts: 3
- Joined: Sat Nov 28, 2020 8:09 pm
Re: RED 2
This worked exactly for me even though I have a different version. Here is my version information in case it helps someone else:penguinsaregood wrote: ↑Wed Nov 27, 2013 3:10 amAccording to my player the length is 1:55:48, three possible titles, the one that worked for me:
UPC: 0-25192-21310-6
Title information
Name: RED 2 (English)
Source file name: 00679.mpls
Duration: 1:55:48
Chapters count: 18
Size: 31.5 GB
Segment count: 15
Segment map: 505,517,514,502,504,511,507,503,509,506,515,501,510,518,519
The one that worked for me:
UPC: 0-31398-28379-9
Amazon - Red / Red 2 Double Feature [Blu-ray]
Title information
Name: RED 2 (English)
Source file name: 00679.mpls
Duration: 1:55:48
Chapters count: 18
Size: 31.5 GB
Segment count: 15
Segment map: 505,517,514,502,504,511,507,503,509,506,515,501,510,518,519
-
- Posts: 2
- Joined: Wed Apr 20, 2022 3:57 pm
Re: RED 2
tappinaway wrote: ↑Tue Dec 03, 2013 11:51 pmI discovered while being frustrated by this disc that the correct sequence is encoded in the files within the BDMV/CLIPINF directory. there is a .clpi file in there for each .m2ts in BDMV/STREAM, where the first occurance of XXXXXM2TS (XXXXX being a stream number) points to the next m2ts file that follows it. additional M2TS entries in the .clpi files seem to point to alternate bogus paths.
here's some perl code that I threw together to find which mpls files have sequences that match.
hope this helps. I've only verified this method against one other disc so far.
Bless you all. Script works great for me on Windows with Strawberry Perl.kecarbaugh wrote: ↑Wed Jan 08, 2014 4:21 amThe perl script can be run successfully under windows (ActiveState Perl) if you change all the directory forward slashes '/' to the windows backward slash '\\'. Specifically the following lines:
Runs great.
Code: Select all
# perl find-playlist.pl <bluray root dir>
#
# This script will find the playlist that has matching mpls and clipinfo segments.
# The one with the longest number of segments is typically the correct main movie file.
#
# Example:
#
# Create a movie directory (e.g. RED2) and copy BDMV/CLIPINF and BDMV/PLAYLIST to it.
# You should now have a structure like this:
#
# RED2/BDMV/CLIPINF
# RED2/BDMV/PLAYLIST
#
# Then execute the script:
#
# perl find-playlist.pl RED2
#
#
my $path = shift;
my $clips = read_m2ts("$path\\BDMV\\CLIPINF", ".clpi");
my $playlists = read_m2ts("$path\\BDMV\\PLAYLIST", ".mpls");
foreach my $list (sort {$a <=> $b} keys %{$playlists}) {
my @clp = @{$playlists->{$list}};
my @playlist = ();
my $next = $clp[0];
push(@playlist, $next);
my $last = $next;
$next = ${$clips->{$last}}[0];
if($next && $next != $last) {
while ($next && $next != $last) {
push(@playlist, $next);
$last = $next;
$next = ${$clips->{$last}}[0];
}
}
my $mpls = join(",",@clp);
my $cliplist = join(",",@playlist);
if( $mpls eq $cliplist ) {
printf("$list :\n");
printf(" mpls -> $mpls\n");
printf(" clipinfo -> $cliplist\n");
}
}
sub read_m2ts {
my $dir = shift;
my $ext = shift;
my $out = {};
opendir(DIR, "$dir") || die "can't open $dir";
my @dir = readdir(DIR);
closedir DIR;
foreach my $file ( grep{ /$ext$/ } @dir ) {
open(XIN, "<$dir\\$file");
my @infile = <XIN>;
chomp @infile;
my $tmp = join(" ", @infile);
my @stuff = $tmp=~m/\d\d\d\d\dM2TS/g;
my @streams = ();
foreach my $strm (@stuff) {
my $a = $strm;
$a =~s/^0*//;
$a =~s/M2TS$//;
push(@streams, $a);
}
my $fnum = $file;
$fnum =~s/$ext$//;
$fnum =~s/^0*//;
$out->{$fnum}=[@streams];
}
return $out;
}