summaryrefslogblamecommitdiff
path: root/posts/2019-07-04-the-best-way-to-transfer-gopro-files-with-linux.html
blob: bbe5b28cf7a4e1a7e7e868665210ff07e00dd6a4 (plain) (tree)
1
2
3
4
5
6
7
8
9
10









                                                                          
                                                                                                          
                                                        



                                                      

                                                              
                                                                      











                                                       
                               
                                                                 
                


              
                                          
                                                 
                 













                                                           



             
                                                     


























                                                                                




                                                          



































                                                                                
<!DOCTYPE html>
<html>
  <head>
    <link rel="stylesheet" href="/includes/stylesheet.css" />
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta
      property="og:description"
      content="The World Wide Web pages of Adam Carpenter"
    />
    <meta property="og:image" content="https://nextcloud.53hor.net/index.php/s/Nx9e7iHbw4t99wo/preview" />
    <meta property="og:site_name" content="53hor.net" />
    <meta
      property="og:title"
      content="Offloading GoPro Footage the Easy Way!"
    />
    <meta property="og:type" content="website" />
    <meta property="og:url" content="https://www.53hor.net" />
    <title>53hornet ➙ Offloading GoPro Footage the Easy Way!</title>
  </head>

  <body>
    <nav>
      <ul>
        <li>
          <a href="/">
            <img src="/includes/icons/home-roof.svg" />
            Home
          </a>
        </li>
        <li>
          <a href="/info.html">
            <img src="/includes/icons/information-variant.svg" />
            Info
          </a>
        </li>
        <li>
          <a href="https://git.53hor.net">
            <img src="/includes/icons/git.svg" />
            Repos
          </a>
        </li>
        <li>
          <a href="/hosted.html">
            <img src="/includes/icons/desktop-tower.svg" />
            Hosted
          </a>
        </li>
        <li>
          <a type="application/rss+xml" href="/rss.xml">
            <img src="/includes/icons/rss.svg" />
            RSS
          </a>
        </li>
      </ul>
    </nav>

    <article>
      <h1>Offloading GoPro Footage the Easy Way!</h1>

      <p>
        Transferring files off of most cameras to a Linux computer isn't all
        that difficult. The exception is my GoPro Hero 4 Black. For 4th of July
        week I took a bunch of video with the GoPro, approximately 20 MP4 files,
        about 3GB each. The annoying thing about the GoPro's USB interface is
        you need additional software to download everything through the cable.
        The camera doesn't just show up as a USB filesystem that you can mount.
        The GoPro does have a micro-SD card but I was away from home and didn't
        have any dongles or adapters. Both of these solutions also mean taking
        the camera out of its waterproof case and off of its mount. So here's
        what I did.
      </p>

      <p>
        GoPro cameras, after the Hero 3, can open up an ad-hoc wireless network
        that lets you browse the GoPro's onboard files through an HTTP server.
        This means you can open your browser and scroll through the files on the
        camera at an intranet address, <code>10.5.5.9</code>, and download them
        one by one by clicking every link on every page. If you have a lot of
        footage on there it kinda sucks. So, I opened up the manual for
        <code>wget</code>. I'm sure you could get really fancy with some of the
        options but the only thing I cared about was downloading every single
        MP4 video off of the camera, automatically. I did not want to download
        any of the small video formats or actual HTML files. Here's what I used:
      </p>

      <pre>
        <code>
sh wget --recursive --accept "*.MP4" http://10.5.5.9:8080/
		</code>
      </pre>

      <p>
        This tells <code>wget</code> to download all of the files at the GoPro's
        address recursively and skips any that don't have the MP4 extension. Now
        I've got a directory tree with all of my videos in it. And the best part
        is I didn't have to install the dinky GoPro app on my laptop. Hopefully
        this helps if you're looking for an easy way to migrate lots of footage
        without manually clicking through the web interface or installing
        additional software. The only downside is if you're moving a whole lot
        of footage, it's not nearly as quick as just moving files off the SD
        card. So I'd shoot for using the adapter to read off the card first and
        only use this if that's not an option, such as when the camera is
        mounted and you don't want to move it.
      </p>

      <p>Some things I would like to change/add:</p>

      <ul>
        <li>
          Download all image files as well; should be easy, just another
          <code>--accept</code>
        </li>
        <li>Initiate parallel downloads</li>
        <li>
          Clean up the directory afterwards so I just have one level of depth
        </li>
      </ul>

      <p>
        I could probably write a quick and dirty shell script to do all of this
        for me but I use the camera so infrequently that it's probably not even
        worth it.
      </p>
    </article>
  </body>
</html>