• 0

Batch file to run command on joining video files?


Question

I have a lot of movies that are 2 files and I want to join them into one file using Avidemux. Right now I've written a batch script to make it a little faster to join the 2 files like I put below. I have to update the "moviefinal" value, save the files, then run it. I have to do this each time with each movie though.

---------------------------

set avidexmuxprog="C:\Programs\avidemux\avidemux.exe"

set moviefinal=The 40 Year Old Virgin

set moviefile1=%moviefinal% - CD1

set moviefile2=%moviefinal% - CD2

%avidexmuxprog% --load "T:\Video\Movies\%moviefile1%.avi" --append "T:\Video\Movies\%moviefile2%.avi" --force-smart --save "C:\_COMBINED_AVI\%moviefinal%.avi" --quit

:end

---------------------------

I've tried putting this into a "for" loop, but the (set) doesn't like spaces in the names and using quotes messes it up too.

---------------------------

set avidexmuxprog="C:\Programs\avidemux\avidemux.exe"

set movie1="The Figher"

set movie2="The Fifth Element"

FOR /f "delims=," %%G IN (%movie1%,%movie2%) DO (%avidexmuxprog% --load "c:\test\%%G - CD1.avi" --append "c:\test\%%G - CD2.avi" --force-smart --save "c:\test\final\%%G.avi" --quit)

:end

---------------------------

Is there a way, in batch to have it automatically detect a file with the same name, but with the CD1/CD2 and then run the command for each file set that it finds in a directory?

I'm not too advanced in batch, but hoping there's a way to automate the entire process so I don't have to keep manually typing in the name.

24 answers to this question

Recommended Posts

  • 0

I looked into that program and it doesn't provide any better options than that of Avidemux. I still have to manually join the files.

I have about 100 or more movies that are (movie-Cd1.avi and movie-Cd2.avi) and want to join them into one file. Avidemux works very well, but have to manually choose 2 files to join, then rinse and repeat 100+ times.

  • 0

While it is certainly possible to do what you want in Batch, its really a pain. I recommend that you use a more suitable scripting language, of which there are many.

For example, I wrote a new version of your script in Perl that does what you requested. It is much nicer than its equivalent in Batch, and took me only a couple of minutes to write and test. All you should need to do is modify the @MOVIES_TO_CONVERT variable to list the movies you need to convert. Also, you can download ActivePerl for Windows if you don't already have Perl installed on your system.


#!/usr/bin/perl

use strict;

# Array of movies to convert
my @MOVIES_TO_CONVERT = ('The Figher', 'The Fifth Element', 'Robinhood Men In Tights');

# Directory where the split AVI files are stored
my $MOVIE_IN_PATH = 'T:\Video\Movies';

# Directory where the combined AVI files will be stored
my $MOVIE_OUT_PATH = 'C:\_COMBINED_AVI';

# Full path to the avidemux executable
my $AVIDEMUX = 'C:\Programs\avidemux\avidemux.exe';

for my $movie (@MOVIES_TO_CONVERT)
{
my $convert_cmd = "\"$AVIDEMUX\" --load \"$MOVIE_IN_PATH\\$movie - CD1.avi\" --append \"$MOVIE_IN_PATH\\$movie - CD2.avi\" --force-smart --save \"$MOVIE_OUT_PATH\\$movie.avi\" --quit";
print "$convert_cmd\n";
die "Unable to convert $movie!\n" if (system "$convert_cmd");
}
[/CODE]

If you save the script as [i]avijoin.pl[/i], or something else with the [i].pl[/i] file extension, ActivePerl should let you double-click to run it.

  • 0

That's awesome orangekiller. I've always wanted to mess with perl more and played with it a little in Debian before. This also gives me good examples to learn from. I'll get Active Perl and try it out since I'm in Windows.

  • 0

Another question for you Orange, what would this look like as a VBS script? Do you know VBS? Just looking for something else to learn from since I'm in a Windows environment and wanted to start messing with VBS instead of batch. I learn best from understand code in scripts that I'm actually trying to use in real life instead of a test book.

I'm installing ActivePerl now and trying out that script on 2 movies.

  • 0

Another question for you Orange, what would this look like as a VBS script? Do you know VBS? Just looking for something else to learn from since I'm in a Windows environment and wanted to start messing with VBS instead of batch. I learn best from understand code in scripts that I'm actually trying to use in real life instead of a test book.

I'm installing ActivePerl now and trying out that script on 2 movies.

Personally I prefer Perl because of its easy syntax and excellent cross-platform support. While I do know a little VBS, I generally try to avoid it. The best Windows-specific scripting language is AutoIt, in my opinion. It has excellent documentation, a great community, a featureful standard library, built-in WIN32 API integration, and any AutoIt script may be "compiled" to an executable so that it can be run on systems that don't have AutoIt installed.

If you are just getting started with these languages, I have a couple of book recommendations for you. Learning To Script with AutoIt V3 is an excellent AutoIt tutorial, probably the best available. Whether you are a novice or expert, that is the tutorial to read when you are first starting with AutoIt. If you are fairly new to programming in general, not just learning a new language, I definitely recommend that you read Beginning Perl. It is an excellent introduction to programming, and covers programming basics, good practices, and the Perl language all-in-one. (Disclosure: Since I am a competent C/C++ developer, I only skimmed the book, but read Perl for C Programmers when I learned Perl.)

  • 0

I looked into that program and it doesn't provide any better options than that of Avidemux. I still have to manually join the files.

I have about 100 or more movies that are (movie-Cd1.avi and movie-Cd2.avi) and want to join them into one file. Avidemux works very well, but have to manually choose 2 files to join, then rinse and repeat 100+ times.

Ohhh, yeah I see what you mean. That would take awhile alright.

Years ago before I found out about Ultra Video Joiner, I just never downloaded anything that was in more than one part, meaning I didn't get the best quality files.

After I got the program, I downloaded everything and joined them right away. Most were 2 parts, but some 3 and 4. Mostly porn to be honest, lol. : )

  • 0

I should have joined these files a long time ago. Was lazy because XBMC detects them and plays 2 files together just fine as long as they are like CD1 and CD2 and so on.

Wanted to get more extensive and use a new media manager and looks like I have to change how I format all my movies, but combining them and putting each movie into a sub folder. The media program does this all for me, but doesn't like more than one file for a movie. Was using Ember Media Manager-R, but now going full blown with Media Center Master since EMM/EMM-R isn't being updated really anymore. After playing with Media Center Master, it just seems like a smarter move anyways.

Funny how things work, been trying to do this script and now playing with perl and in the past hour I've been playing with PowerShell which is way cooler than I thought it was at first and found out it's replacing VBS pretty much.

I'm going to play with AutoIT more also. Thanks again Orange.

  • 0

I improved the Perl script I posted above. This version is capable of detecting unconverted movies in the input directory and joining them automatically. If you still want to manually control which movies get converted, you can assign their names to the @MOVIES_TO_CONVERT array like before, and the script will use those instead of auto-detection. (Remove the '; #' after the @MOVIES_TO_CONVERT and use the comment as reference if you want manual control.)


#!/usr/bin/perl

use strict;

########################################################################
# Configuration Details #
########################################################################

# Array of movies to convert
my @MOVIES_TO_CONVERT; # = ('The Figher', 'The Fifth Element');

# Directory where the split AVI files are stored
my $MOVIE_IN_PATH = 'T:\Video\Movies';

# Directory where the combined AVI files will be stored
my $MOVIE_OUT_PATH = 'C:\_COMBINED_AVI';

# Full path to the avidemux executable
my $AVIDEMUX = 'C:\Programs\avidemux\avidemux.exe';

########################################################################
# Functions #
########################################################################

# Return an array of all the AVI files in the specified directory.
sub get_avis_in_directory
{
my $dh; # Directory handle
my $dir; # Current directory
my @avis; # Array of file names to return

opendir ($dh, $dir = shift) or die "Failed to open directory $dir: $!\n";
while (readdir $dh)
{
next if (/^\.{1,2}/);
$_ = $dir . "\\" . $_;
push (@avis, $_) if (-f $_ and /.*\.avi$/i);
}
closedir $dh;

return (@avis);
}

########################################################################
# Entry Point #
########################################################################

die "Input directory $MOVIE_IN_PATH does not exist!\n" unless (-d $MOVIE_IN_PATH);
die "Output directory $MOVIE_OUT_PATH does not exist!\n" unless (-d $MOVIE_OUT_PATH);

# This variable represents the actual names and paths of movies to be converted.
# It will either be built from the files specified in @MOVIES_TO_CONVERT manually, or
# built dynamically based on the files in the source and destination paths.
my @movies_formatted; # Array of hashes of movies to convert

if ($#MOVIES_TO_CONVERT == -1)
{
my @in_avis; # Array of AVI files in the input directory
my @out_avis; # Array of AVI files in the ouput directory

@in_avis = get_avis_in_directory ($MOVIE_IN_PATH);
@out_avis = get_avis_in_directory ($MOVIE_OUT_PATH);

for my $in_avi (@in_avis)
{
if ($in_avi =~ /.*-[ ]*CD[ ]*1\.avi$/i)
{
my $rec; # Temporary hash variable
my $name; # Name of the move we are processing
$name = (split (/[ ]*-[ ]*CD[ ]*1/i, $in_avi))[0];
$name = (split (/$MOVIE_IN_PATH[\\\/]{1}/i, $name))[1];

for my $in_avi_2 (@in_avis)
{
if ($in_avi_2 =~ /^$MOVIE_IN_PATH\\$name[ ]*-[ ]*CD[ ]*2\.avi$/i)
{
$rec->{'part2'} = $in_avi_2;
last;
}
}

if (defined $rec->{'part2'})
{
for my $out_avi (@out_avis)
{
if ($out_avi =~ /$name\.avi$/i)
{
$rec->{'output'} = $out_avi;
last;
}
}

unless (defined $rec->{'output'})
{
$rec->{'part1'} = $in_avi;
$rec->{'output'} = "$MOVIE_OUT_PATH\\$name.avi";
push (@movies_formatted, $rec);
}
}
}
}
}
else
{
my $rec; # Temporary hash variable

for my $name (@MOVIES_TO_CONVERT)
{
$rec = {};
$rec->{'part1'} = "$MOVIE_IN_PATH\\$name - CD1.avi";
$rec->{'part2'} = "$MOVIE_IN_PATH\\$name - CD2.avi";
$rec->{'output'} = "$MOVIE_OUT_PATH\\$name.avi";
push (@movies_formatted, $rec);
}
}

for my $movie (@movies_formatted)
{
my $convert_cmd = "\"$AVIDEMUX\" --load \"" . $movie->{'part1'} . "\" --append \"" . $movie->{'part2'} . "\" --force-smart --save \"" . $movie->{'output'} . "\" --quit";
print "$convert_cmd\n";
die "Unable to convert $movie!\n" if (system "$convert_cmd");
}
[/CODE]

[b]Edit:[/b] If you copy/paste the code into a descent text editor with a monospaced font, such as Notepad++, it should look nicer.

  • 0

Funny how things work, been trying to do this script and now playing with perl and in the past hour I've been playing with PowerShell which is way cooler than I thought it was at first and found out it's replacing VBS pretty much.

I'm going to play with AutoIT more also. Thanks again Orange.

I agree that PowerShell is really neat. Its definitely an improvement over both Batch and VBS, but it still pales in comparison to BASH in my opinion. I definitely have to give Microsoft credit for getting it so close to right. PowerShell is the most usable shell/scripting language I have used that Microsoft produced. If you are interested in learning more about it, I definitely recommend the book Windows PowerShell in Action. It was authored by one of the PowerShell core developers and explains the influences and reasoning behind many of their design choices. Not only does it teach PowerShell well, but it helped me to understand the PowerShell mentality more than any of the other PowerShell resources I read.

When it comes to AutoIt, on the one hand I almost wish Microsoft would officially adopt it as their VBS replacement, and on the other hand I'm glad they haven't. AutoIt feels very much like a VBS replacement. Its syntax is similar, yet the language is more powerful. It is simple to use and integrates with Windows very well. It smoothed the rough spots of VBS while polishing what made it great. All-around I think its an excellent language/platform. Although AutoIt would certainly get more support if Microsoft officially adopted it, I'm afraid that Microsoft would kill it. They have a nasty habit of promoting some new language or technology as the-best-thing-since-sliced-bread one year, then abandoning it never-to-be-mentioned-again the next. Therefore, while its not Microsoft's blessed scripting language for Windows, AutoIt is probably safer and more stable that way. I highly recommend it.

  • 0

Thanks again for the info. While looking at your perl code, it kind of helped me understand using batch a little more.

I took my original batch code with the FOR loop and put the names of the movies that are 2 files in a separate text file.

FOR /f "delims=|" %%G IN (filelist.txt) DO (%avidexmuxprog% --load "c:\test\%%G - CD1.avi" --append "c:\test\%%G - CD2.avi" --force-smart --save "c:\test\final\%%G.avi" --quit)

It's working so far, but have to manually enter all names. I haven't tested, but wondering if using | instead of , is why it's working now regardless of delims=, like I had before to separate the names.

I'm looking at that new perl script that is more automated and playing with that too. Learning so much and it's fun. lol

Even though now I have many options of getting this done, I'm trying to make the perl, batch, and powershell work for the hell of it.

  • 0

I'm looking at that new perl script that is more automated and playing with that too. Learning so much and it's fun. lol

Even though now I have many options of getting this done, I'm trying to make the perl, batch, and powershell work for the hell of it.

I'm glad that I was able to help. Automating the same task in different languages is an excellent way to learn the syntax, strengths, and weaknesses of each. The same basic algorithm that I used in the latter Perl script shouldn't be too difficult to implement in PowerShell. (Technically, you could try it in Batch too, but I'm not enough of a masochist to advocate that.)

  • 0

xorangekiller - I installed ActivePerl and set the file paths of the source, destination and Avidemux but when I run the films.pl file (where I have copied your script) a command window flashes up and ends up doing nothing :(

If it helps, I wrote a small hello word script (with the help of Google) and that outputs fine to the command line.

/Edit: On purpose I entered an invalid source and destination path and that does give me the following errors:


Input directory T:\Video\Movies does not exist!
Output directory C:\_COMBINED_AVI does not exist![/CODE]

But as soon as they are right, the script does nothing:

[CODE]
C:\>perl films.pl

C:\>[/CODE]

  • 0

I got it working by using a specified file list, and I think I know what was wrong. My films are named "Film CD 1.avi" etc and not "Film - CD1.avi".

What would I need to change these two lines to work with that format:


$name = (split (/[ ]*-[ ]*CD[ ]*1/i, $in_avi))[0];

if ($in_avi_2 =~ /^$MOVIE_IN_PATH\\$name[ ]*-[ ]*CD[ ]*2\.avi$/i)
[/CODE]

  • 0

I got it working by using a specified file list, and I think I know what was wrong. My films are named "Film CD 1.avi" etc and not "Film - CD1.avi".

What would I need to change these two lines to work with that format:


$name = (split (/[ ]*-[ ]*CD[ ]*1/i, $in_avi))[0];

if ($in_avi_2 =~ /^$MOVIE_IN_PATH\\$name[ ]*-[ ]*CD[ ]*2\.avi$/i)
[/CODE]

You are correct in suspecting the regular expressions as the reason the script is not working for you. I wrote it to expect the OP's naming scheme. Since your naming scheme is a little bit different, my script was not detecting anything to convert. The version below is modified to work under the your conditions; note the differences on lines 66, 70, and 75 in particular.

[CODE]
#!/usr/bin/perl

use strict;

########################################################################
# Configuration Details #
########################################################################

# Array of movies to convert
my @MOVIES_TO_CONVERT; # = ('The Figher', 'The Fifth Element');

# Directory where the split AVI files are stored
my $MOVIE_IN_PATH = 'T:\Video\Movies';

# Directory where the combined AVI files will be stored
my $MOVIE_OUT_PATH = 'C:\_COMBINED_AVI';

# Full path to the avidemux executable
my $AVIDEMUX = 'C:\Programs\avidemux\avidemux.exe';

########################################################################
# Functions #
########################################################################

# Return an array of all the AVI files in the specified directory.
sub get_avis_in_directory
{
my $dh; # Directory handle
my $dir; # Current directory
my @avis; # Array of file names to return

opendir ($dh, $dir = shift) or die "Failed to open directory $dir: $!\n";
while (readdir $dh)
{
next if (/^\.{1,2}/);
$_ = $dir . "\\" . $_;
push (@avis, $_) if (-f $_ and /.*\.avi$/i);
}
closedir $dh;

return (@avis);
}

########################################################################
# Entry Point #
########################################################################

die "Input directory $MOVIE_IN_PATH does not exist!\n" unless (-d $MOVIE_IN_PATH);
die "Output directory $MOVIE_OUT_PATH does not exist!\n" unless (-d $MOVIE_OUT_PATH);

# This variable represents the actual names and paths of movies to be converted.
# It will either be built from the files specified in @MOVIES_TO_CONVERT manually, or
# built dynamically based on the files in the source and destination paths.
my @movies_formatted; # Array of hashes of movies to convert

if ($#MOVIES_TO_CONVERT == -1)
{
my @in_avis; # Array of AVI files in the input directory
my @out_avis; # Array of AVI files in the ouput directory

@in_avis = get_avis_in_directory ($MOVIE_IN_PATH);
@out_avis = get_avis_in_directory ($MOVIE_OUT_PATH);

for my $in_avi (@in_avis)
{
if ($in_avi =~ /.*[ ]*CD[ ]*1\.avi$/i)
{
my $rec; # Temporary hash variable
my $name; # Name of the move we are processing
$name = (split (/[ ]*CD[ ]*1/i, $in_avi))[0];
$name = (split (/$MOVIE_IN_PATH[\\\/]{1}/i, $name))[1];

for my $in_avi_2 (@in_avis)
{
if ($in_avi_2 =~ /^$MOVIE_IN_PATH\\$name[ ]*CD[ ]*2\.avi$/i)
{
$rec->{'part2'} = $in_avi_2;
last;
}
}

if (defined $rec->{'part2'})
{
for my $out_avi (@out_avis)
{
if ($out_avi =~ /$name\.avi$/i)
{
$rec->{'output'} = $out_avi;
last;
}
}

unless (defined $rec->{'output'})
{
$rec->{'part1'} = $in_avi;
$rec->{'output'} = "$MOVIE_OUT_PATH\\$name.avi";
push (@movies_formatted, $rec);
}
}
}
}
}
else
{
my $rec; # Temporary hash variable

for my $name (@MOVIES_TO_CONVERT)
{
$rec = {};
$rec->{'part1'} = "$MOVIE_IN_PATH\\$name CD 1.avi";
$rec->{'part2'} = "$MOVIE_IN_PATH\\$name CD 2.avi";
$rec->{'output'} = "$MOVIE_OUT_PATH\\$name.avi";
push (@movies_formatted, $rec);
}
}

for my $movie (@movies_formatted)
{
my $convert_cmd = "\"$AVIDEMUX\" --load \"" . $movie->{'part1'} . "\" --append \"" . $movie->{'part2'} . "\" --force-smart --save \"" . $movie->{'output'} . "\" --quit";
print "$convert_cmd\n";
die "Unable to convert $movie->{'output'}!\n" if (system "$convert_cmd");
}
[/CODE]

[b]Edit:[/b] Here is the diff between the OP's version of the script and yours. It should make the changes a little more obvious. (The spaces may be a little munged, kinda like the script above. I hate Neowin's code formatting.)

[CODE]
--- avijoin.pl 2013-01-12 20:15:57.468098458 -0500
+++ avijoin-nodash.pl 2013-01-12 20:31:27.336122407 -0500
@@ -63,16 +64,16 @@

for my $in_avi (@in_avis)
{
- if ($in_avi =~ /.*-[ ]*CD[ ]*1\.avi$/i)
+ if ($in_avi =~ /.*[ ]*CD[ ]*1\.avi$/i)
{
my $rec; # Temporary hash variable
my $name; # Name of the move we are processing
- $name = (split (/[ ]*-[ ]*CD[ ]*1/i, $in_avi))[0];
+ $name = (split (/[ ]*CD[ ]*1/i, $in_avi))[0];
$name = (split (/$MOVIE_IN_PATH[\\\/]{1}/i, $name))[1];

for my $in_avi_2 (@in_avis)
{
- if ($in_avi_2 =~ /^$MOVIE_IN_PATH\\$name[ ]*-[ ]*CD[ ]*2\.avi$/i)
+ if ($in_avi_2 =~ /^$MOVIE_IN_PATH\\$name[ ]*CD[ ]*2\.avi$/i)
{
$rec->{'part2'} = $in_avi_2;
last;
@@ -107,8 +108,8 @@
for my $name (@MOVIES_TO_CONVERT)
{
$rec = {};
- $rec->{'part1'} = "$MOVIE_IN_PATH\\$name - CD1.avi";
- $rec->{'part2'} = "$MOVIE_IN_PATH\\$name - CD2.avi";
+ $rec->{'part1'} = "$MOVIE_IN_PATH\\$name CD 1.avi";
+ $rec->{'part2'} = "$MOVIE_IN_PATH\\$name CD 2.avi";
$rec->{'output'} = "$MOVIE_OUT_PATH\\$name.avi";
push (@movies_formatted, $rec);
}
[/CODE]

  • 0

Unfortunately the new script doesn't work. It gives the same result as before and my files are named in the format "Film CD 1.avi" etc.

The only difference this time is that there are some .mkv files in the same folder but if I am reading this script correctly, they would just be ignored?

/Edit: I added "use warnings;" to the top and it shows this error many times:


Use of uninitialized value $name in regexp compilation at films.pl line 76
[/CODE]

  • 0

Unfortunately the new script doesn't work. It gives the same result as before and my files are named in the format "Film CD 1.avi" etc.

The only difference this time is that there are some .mkv files in the same folder but if I am reading this script correctly, they would just be ignored?

/Edit: I added "use warnings;" to the top and it shows this error many times:


Use of uninitialized value $name in regexp compilation at films.pl line 76
[/CODE]

The MKV files should not interfere with the script. It is supposed to filter out everything but AVIs.

The warning you are getting about an uninitialized variable does suggest a cause. The split statement on line 72 is failing. The split statement on line 71, which is supposed to remove the "CD 1" text from the end of the video's name, could be failing as well, but since the $name variable is assigned from the first element of the resulting array, $name will always have a value, even if its wrong. Since the split statement on line 72, which is supposed to remove the leading path from the video's name, is using the second element of the resulting array, $name is not guaranteed to have a value, although a value is assumed by the script. You are getting a warning on line 76 because that is the first place the uninitialized variable is used. Theoretically the way the script is building the array of AVIs and parsing out the name should have made this situation impossible - at least that was my thinking - but apparently not. Your environment must have some condition that my tests did not cover.

If you have more specific questions, feel free to ask. If you discover a solution, post it. Hopefully that gives you enough information to debug your issue. Good luck.

  • 0

I posted the question here:

http://stackoverflow...me-not-matching

See the answer by Borodin, and the following comments. You might be able to help with that :)

Thanks! His answer was very helpful, and he is correct: I'm not a pro Perl programmer. I learned Perl about 4 months ago. I originally wrote this script in Perl because it was certainly easier than Batch, and the best way to learn a language is to practice it.

By the way, after all that: hshah, welcome to Neowin!

  • 0

Thanks! His answer was very helpful, and he is correct: I'm not a pro Perl programmer. I learned Perl about 4 months ago. I originally wrote this script in Perl because it was certainly easier than Batch, and the best way to learn a language is to practice it.

By the way, after all that: hshah, welcome to Neowin!

Thanks for the welcome.

I hadn't noticed his edit (that code wasn't there before) and to be honest I'm not fussed whether your code is the best or not... it works and it has saved me hours of manual work. So the thanks still goes to you :)

  • 0

Hi,

 

wow, this is great.

 

Thanks a lot for your work, xorangekiller.

 

The only think, if i have one wish for free, is, to make it more flexible and simple.

 

For example, the script could parse through all files of a directory (i move all split avis in a separate directory) and whenever it finds two matching files it will join them.

So there is no need to fill the array @MOVIES_TO_CONVERT

 

A second wish is, that the naming convention is mor flexible.

Sometimes the naming of the file is *-cd1.avi / *-cd2.avi, sometimes it's *cd1 or cda or just a and b.

 

 

But anyhow, this is great

 

 

spline

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • EA launches in-game advertising platform for brands to "connect with audiences" by Pulasthi Ariyasinghe The gaming giant Electronic Arts is exploring more ways to inject real-life brands into its games. Announced today as EA Advertising, the new platform is attempting to make it easier for brands to reach out for deals with the company and put their products inside titles like EA Sports FC, Madden, NHL, Skate, or The Sims. EA revealed that its EA Sports side of the company brings in "hundreds of millions of players across console, PC, and mobile" every year. Fan engagement of these titles was also touted as being "extraordinary," with 23,000 NFL seasons worth of games being played in Madden NFL daily, while EA Sports FC sees over a billion matches a day. “Players come to EA’s games and live experiences every day to play, watch, create and connect,” said David Tinson, Chief Experiences Officer at Electronic Arts. “That gives brands a meaningful opportunity to show up in ways that add value and respect the player experience, while maintaining authenticity in the worlds our teams are building. With EA Advertising, we’re helping brands become part of those moments in ways that are relevant and built for players.” Using the new program EA Advertising, brands will be able to inject their products into games in real-time via dynamic placement. EA says partners will have access to everything from stadium signage in sports games and targeted adverts to in-game content custom-made for the brands. These are described as additions designed to "enhance, not disrupt" experiences. "In these interactive gameplay environments, brands become part of the game itself, reflecting how players engage with advertising in real-world contexts," adds the company "Brands can activate across live environments, tailoring placements to meet campaign objectives, and update campaigns with ongoing optimization informed by aggregated engagement insights." Current real-world brand partnerships EA has built into its games include Visa (EA Sports FC and College Football), Lowe's (EA Sports FC, Madden NFL, and College Football), Red Bull (EA SPORTS FC), Xfinity and Peacock (EA SPORTS FC), and Mountain Dew’s (College Football).
    • Will be surprised if there isn't a new ver of youtube just for labelled educational content
    • UK to ban under-16s from social media following a six-week trial with teenagers by Paul Hill Credit: Pexels A few months ago, Neowin reported that the UK was trialing a social media ban with 300 teenagers for six weeks, that testing has come to an end, and Prime Minister Keir Starmer has announced that the country will ban under-16s from social media. Starmer said that this technology is making children unhappy and making it easier for bullies to harass and abuse them. He continued to talk about the addictive nature of social media, saying that it uses an infinite scroll designed to lock users in for hours. He said this interferes with children doing their homework, reading, playing with friends outside, and going to bed on time. Tackling the idea that nothing can be done about social media, Starmer said: The government’s action won’t stop at social media either, the PM said. It plans to take action on gaming services and livestreaming platforms. Right now, he said, strangers can contact any child unchecked. He said this wouldn’t happen in real life, and the government is going to stop it from happening online, too. The Labour government has overseen the introduction of the Online Safety Act, a big change to the internet which includes age verification on adult websites. This has led to a fair bit of backlash, but overall, the government is pushing ahead with these changes.
    • Still using Hexchat every day but i would not consider it Retro 😛
    • HONOR Robot Phone unveils first Cinematic Video at Shanghai International Film Festival by Steven Parker Global AI device ecosystem company HONOR announced on June 13 that its revolutionary HONOR Robot Phone made its professional imaging debut at the 28th Shanghai International Film Festival (SIFF), demonstrating the result of its mobile videography capabilities for the first time. As the official mobile photography and videography partner of the 28th Shanghai International Film Festival, HONOR empowers this premier cinematic event with cutting-edge mobile imaging technology. Marking the global debut of the first cinematic video it captured, Robot Phone breaks down the boundaries between mobile imaging and professional filmmaking, ushering in a new paradigm for the deep integration of technology and cinematic art. In the video published on HONOR’s official channel (above), Robot Phone was used byELLEMEN to capture cinematic video portraits for the SIFF jury members. With its exceptional stability and cinema-grade imaging capabilities, the device redefines the art of portrait filmmaking, faithfully reproducing the rich tonal gradations and nuanced color transitions associated with film photography. The result is a new level of visual sophistication, creating high-end cinematic imagery that seamlessly blends atmosphere with narrative tension. The video released for the Robot Phone showcases the powerful stabilization capabilities of its built-in gimbal system, delivering exceptionally smooth handheld camera movement while preserving full image quality. By minimizing reliance on electronic image stabilization, the device effectively avoids the image cropping and quality loss typically associated with digital stabilization methods. Representing an innovative leap in form factor, the HONOR Robot Phone features the industry's smallest titanium alloy gimbal, delivering ultra-precision, extreme flexibility, and superior stability. Driven by high-performance motors, the gimbal rises dynamically, breaking free from the physical limitations of traditional camera modules. Combined with advanced AI algorithms that enable intelligent object tracking and various movements with stable shots, the device significantly simplifies video creation and reshapes both the equipment choices and creative habits of modern users. Notably, the Robot Phone will be the first product that features the results of HONOR's strategic technological partnership with ARRI, the world-renowned designer and manufacturer of professional camera technology for cinematic storytelling. From Cannes to Shanghai, the HONOR Robot Phone continues to lead the mobile imaging industry into an entirely new stage of development. Moving forward, HONOR will leverage cutting-edge AI and mobile imaging technologies to unlock new creative possibilities and extend cinematic standards for visual expression from the world of high-end filmmaking to the next generation of content creators. Learn more about the HONOR Robot Phone here: https://www.honor.com/global/events/honor-robot-phone/
  • Recent Achievements

    • Week One Done
      Jeroen Wilms earned a badge
      Week One Done
    • Week One Done
      rolfus earned a badge
      Week One Done
    • One Month Later
      Leroy Jethro Gibbs earned a badge
      One Month Later
    • Conversation Starter
      flexorcist earned a badge
      Conversation Starter
    • One Month Later
      AndreaB earned a badge
      One Month Later
  • Popular Contributors

    1. 1
      +primortal
      511
    2. 2
      +Edouard
      200
    3. 3
      PsYcHoKiLLa
      137
    4. 4
      ATLien_0
      89
    5. 5
      Steven P.
      84
  • Tell a friend

    Love Neowin? Tell a friend!