RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login
    Please do not post a support request without first reading and following the advice in https://retropie.org.uk/forum/topic/3/read-this-first

    [SCRIPT] Batch convert YUV 4:4:4 videos to YUV 4:2:0 in Retropie/Linux

    Scheduled Pinned Locked Moved Help and Support
    omxscriptvideoyuv
    66 Posts 15 Posters 16.8k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • hiulitH
      hiulit @thelostsoul
      last edited by

      @thelostsoul @Clyde There's already a convert function in Sselph Scrapper -convert_videos. But the script must be run via the terminal, something like this:

      /opt/retropie/supplementary/scraper/scraper -convert_videos
      

      See the RetroPie documentation: https://github.com/retropie/retropie-setup/wiki/scraper#parameter-list

      P.S. I don't know exactly what it does, it only says "Convert videos for the Raspberry Pi" and Handbrake must be installed.

      My little contributions to the RetroPie project:

      • Shell-Script-Boilerplate
      • Fun-Facts-Splashscreens
      • Limit-Last-Played-Games
      ClydeC 1 Reply Last reply Reply Quote 0
      • ClydeC
        Clyde @hiulit
        last edited by

        @hiulit It's a script, so we could inspect it for its function. Alas, my Raspberry isn't operational at this time, because my upright cabinet is in its last stages to completion, but currently dismantled.

        1 Reply Last reply Reply Quote 1
        • hiulitH
          hiulit
          last edited by hiulit

          In case anyone in this thread is interested, I released v2.0.0 of RetroPie Convert Videos.

          My little contributions to the RetroPie project:

          • Shell-Script-Boilerplate
          • Fun-Facts-Splashscreens
          • Limit-Last-Played-Games
          1 Reply Last reply Reply Quote 0
          • hiulitH
            hiulit
            last edited by

            Just released yet another version of RetroPie Convert Videos (v2.1.0).

            My little contributions to the RetroPie project:

            • Shell-Script-Boilerplate
            • Fun-Facts-Splashscreens
            • Limit-Last-Played-Games
            1 Reply Last reply Reply Quote 1
            • QuackwalksQ
              Quackwalks
              last edited by Quackwalks

              As I follow the instructions I get this. /home/pi/444p-to-420p.sh: 3 /home/pi/444p-to-420p.sh: Syntax error: word unexpected (expecting "do")

              For a layman like me this is quite the frustration. It expects the word "do" on line 3? Oh. Okay! It's like, the only word on line 3, so I don't know what more you expect, Mr. fussy computer pants. Please help. This is the last thing I have to do to get my retropie image perfect.

              ClydeC 1 Reply Last reply Reply Quote 0
              • ClydeC
                Clyde @Quackwalks
                last edited by Clyde

                @Quackwalks Hm … it works on the Linux system on my Laptop (KDE Neon based on Ubuntu 18.04). I can test it on my Retropie system this evening.

                What system did you create and/or are you running the script on? What were the exact steps you took to create the file? Could you please post your script into a codeblock here? (Just to check if there were any copying errors.)

                edit: Maybe your system saved the wrong line endings. For example, Windows uses CR LF (0d 0a) while Unix-like systems like Linux only use LF (0a). See here how to remove any CR from the file. As a 99% Linux user, I don't have any experience in this, but It may be worth a try.

                1 Reply Last reply Reply Quote 0
                • QuackwalksQ
                  Quackwalks
                  last edited by Quackwalks

                  mkdir -p converted                         # create the folder "converted" if it doesn't exist
                  for f in *-video.mp4                       # process all videos
                    do
                      c=$(avprobe $f 2>&1 | grep -c yuv444p) # (-c)ount no. of "444p"
                  
                      if [ "$c" -gt 0 ]                      # if 444p is present,
                        then				   # convert into 420p
                          avconv -i $f -y -pix_fmt yuv420p -strict experimental converted/$f
                      fi
                  done
                  

                  I highlighted the text from your code block then copy and pasted it into notepad++. Saved it with UTF-8 encoding as a .sh file. Used WinSCP to copy it into home/pi. On the raspberry pi 3b+ running retropie 4.4, I quit emulationstation and used the chmod command with no problem. Then entered cd home/pi/RetroPie/roms/fba/media/videos, then sh/home/pi/444p-to-420p.sh, which gives me the syntax error. The converted video folder was created just fine.
                  The system I tried it for is fba. I used Skraper and the Screen Scraper database to scrape my roms, which left me with .mp4 files that had names identical to the roms (not having -video at the end of the file names). Don't go to any great trouble for me. I realized last night I had backup videos from a previous image. I used XML Scraper V2 back then, so last night used a bulk rename application to rename them without "-video" at the end. The funny thing is that I used this script about a year ago for the videos I had backed up, so it worked for me then. It's a real noodle scratcher for me.

                  mituM 1 Reply Last reply Reply Quote 0
                  • mituM
                    mitu Global Moderator @Quackwalks
                    last edited by

                    @Quackwalks said in [SCRIPT] Batch convert YUV 4:4:4 videos to YUV 4:2:0 in Retropie/Linux:

                    I highlighted the text from your code block then copy and pasted it into notepad++. Saved it with utc-8 encoding as a .sh file. Used WinSCP to copy it into home/pi. On the raspberry pi 3b+ running retropie 4.4, I quit emulationstation and used the chmod command with no problem. Then entered cd home/pi/RetroPie/roms/fba/media/videos, then sh/home/pi/444p-to-420p.sh, which gives me the syntax error. The converted video folder was created just fine.

                    It's not the character encoding, but the line endings settings of the file - should be Unix (LF) in Notepad++.

                    feaeb67f-6276-496d-833f-7e9c2b5fd2b4-image.png

                    QuackwalksQ ClydeC 2 Replies Last reply Reply Quote 0
                    • QuackwalksQ
                      Quackwalks @mitu
                      last edited by Quackwalks

                      @mitu Ah, I see now. Thank you to you two for the help. I'll never gloss over line ending settings again.

                      1 Reply Last reply Reply Quote 0
                      • ClydeC
                        Clyde @mitu
                        last edited by

                        @mitu @Quackwalks Sorry, for the late answer. I was occupied over Easter and in the days after. Thanks @mitu for stepping in.

                        1 Reply Last reply Reply Quote 1
                        • G
                          Gogol
                          last edited by Gogol

                          Hello, I wonder if someone could help me with this batch converter as I am having some trouble.

                          These are the steps I have taken...

                          1. Copied the text from the code block posted by clyde into Notepad++, I saved it as a Unix script file, with Unix (LF) and UTF-8 encoding, the file appears as 444p-to-420p.sh on my PC desktop.

                          2. Using WinSCP, I moved the 444p-to-420p.sh file to /home/pi on my Raspberry Pi 3B.

                          3. From emulationstation, I press F4 on my keyboard to get to the command line.

                          4. I type in chmod u+x 444p-to-420p.sh and press enter and I get an error message "chmod: changing permissions of '444p-to-420p.sh': Operation not permitted"

                          I have obviously made a mistake somewhere and would be grateful for any assistance.

                          mituM ClydeC 2 Replies Last reply Reply Quote 0
                          • mituM
                            mitu Global Moderator @Gogol
                            last edited by

                            @Gogol Are you using WinScp as the root ? It's not advisable and it's probably the cause of this error. Before running chmod, run:

                            sudo chown pi 444p-to-420p.sh
                            
                            1 Reply Last reply Reply Quote 0
                            • ClydeC
                              Clyde @Gogol
                              last edited by Clyde

                              @Gogol If @mitu's tip doesn't help, please show us the output of

                              ls -l 444p-to-420.sh
                              

                              to see the owner and permissions of the file. Both "l" are small "L" and not ones.

                              As a side note, if you save the file in /home/pi/bin you can invoke it from any other directory without writing its full path (/home/pi/444p-to-420p.sh in your case), i.e. from your videos directory. See my Hint in my opening post.

                              From your current location of the file, these commands will to that:

                              cd /home/pi             # make sure you are in pi's home directory
                              mkdir bin               # create the directory "bin"
                              mv 444p-to-420p.sh bin  # move the script to bin
                              
                              1 Reply Last reply Reply Quote 1
                              • G
                                Gogol
                                last edited by

                                Hi, sorry for the late reply.

                                I was not able to get this to work, but I think the problem lies with the .mp4 videos I am trying to convert, I downloaded them from the internet from sites like emumovies and arcadepunks.

                                They do not display on the preview, so I tried converting one of the video snaps via VLC Media Player and was able to get the video to display in emulation station, however it was extremely glitchy. I have also tried with handbrake but with no success, the video does not display.

                                Do you know of another way to convert these videos, or possibly the correct settings in VLC or handbrake to get the videos to display without any glitches?

                                thelostsoulT 1 Reply Last reply Reply Quote 0
                                • thelostsoulT
                                  thelostsoul @Gogol
                                  last edited by

                                  @Gogol I converted most problematic videos by completely recoding with Avidemux on my Ubuntu pc. That was before I saw this script. I don't remember the exact settings:

                                  • Video Codec=Mpeg4 AVC (x264)
                                  • change quality setting to something like 26 or so (really don't know anymore)
                                  • Audio Codec=AAC or MP3, not sure
                                  • Output Format=MP4v2 Muxer

                                  📜 RE/SET: 100 SNES Games for your RetroPie, 🎁 Share your hidden gems and insider tips

                                  G 1 Reply Last reply Reply Quote 0
                                  • G
                                    Gogol @thelostsoul
                                    last edited by

                                    @thelostsoul I tried Avidemux for Windows with those settings but was unsuccessful in getting them to work.

                                    I do not want to derail this thread and I could not find a PM function, so I wanted to ask if you would be willing to convert the eight .mp4 video snaps I have using the batch converter created by Clyde if I sent them to you, to test if they work after conversion and then send them back to me if they do?

                                    thelostsoulT 1 Reply Last reply Reply Quote 0
                                    • thelostsoulT
                                      thelostsoul @Gogol
                                      last edited by

                                      @Gogol You are right. Create a new thread and use my nickname so I get ping. Upload the files all at once in a zip file to https://uploadfiles.io/ and I try.

                                      📜 RE/SET: 100 SNES Games for your RetroPie, 🎁 Share your hidden gems and insider tips

                                      1 Reply Last reply Reply Quote 0
                                      • B
                                        bluebrews
                                        last edited by

                                        Just came across this and it worked like a champ for me. Thanks!

                                        1 Reply Last reply Reply Quote 2
                                        • I
                                          iainjh
                                          last edited by

                                          thank you also. My .mp4's werent named -video.mp4 so I whipped that out and the script has run perfectly. thanks!

                                          1 Reply Last reply Reply Quote 2
                                          • T
                                            toto2000
                                            last edited by

                                            hello everyone, I'm using Retropie 4.6 right now, and I encountered lots of scrapped videos that only had sound but no display in ES, with OMX player on or off.

                                            I'm sorry, but aren't we all taking the wrong way to find a solution? The short term solution is to convert the videos, but the long term solution is to be able to play them as is, without converting. What other distribs (Batocera, Recalbox, Regamebox) do that Retropie doesn't? Why all these videos do play on other images and not on Retropie?
                                            I got some scrapped romsets and I had to convert all videos, but when I spoke to the authors they said (what? They do play perfectly with our images.... update Retropie, we're using VLC behind the scenes, there is no problem....)

                                            So... what would be the solution to play these videos WITHOUT converting?

                                            ClydeC 1 Reply Last reply Reply Quote 1
                                            • First post
                                              Last post

                                            Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.

                                            Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.