Use these "Section-quick-links" to navigate to the desired VIDEO section:



Video and Audio topics

Converting and altering video/audio files: Introducing the "ffmpeg" utility

FFMPEG is a free and open-source cmd-line-driven software tool. It has become my 'go-to' tool of choice, for most of my various video (and audio) file-manipulation/conversion needs.

(Their 'static' kit packaging is simpler to setup/install, so if you're unsure, I'd recommend that one for newbies.)

Video Processing

Understanding the various 'video container' files and the various 'video codecs' being used inside those containers


For now, just look at the 'table' of codec names:
Note: ANY codec-type can be placed inside ANY of the various container-types.
Note: Typically, any given video-container file contains at least TWO codec-streams: a video stream and an audio stream.
A commonly-used tool is the 'mediainfo' cmd-line program...it is used to 'look inside' a video container file, to see what codec-streams exist, and their property values (aka 'metadata').

How to extract a shorter-duration portion from a multimedia file (using the 'ffmpeg' program)

Some 'ffmpeg' basics...you can quickly and easily extract shorter 'snippets' from longer multimedia files. The following ffmpeg cmd will copy the first 2 streams (e.g. both the video and audio streams), preserving whatever specific video and audio codec-TYPES that are already being used in the input file, and snip out '-t' seconds in length, starting at an offset of '-ss' seconds into the file:

  ffmpeg -i MOVIE.mp4 -ss 2100 -t 300 -vcodec copy -acodec copy MOVIE-snippet-5mins.mp4

[ So, this example copies a 5-minute-long segment (5 x 60 = 300 secs), starting at the 35:00 minute-mark in the file (35 x 60 = 2100 secs), and puts it into a separate, newly-created 'snippet' file. ]
Actually, it is clearer/more-straightforward, to use "from/to time-value" syntax:

  ffmpeg -i MOVIE.mp4 -ss 00:35:00.000 -to 00:40:00.000 -vcodec copy -acodec copy MOVIE-snippet-5mins.mp4

How to reduce filesize of video files (using 'ffmpeg')

If you need to convert, say, an MKV video into an MKV of much smaller size, 'ffmpeg' can do that, too. I use a cmd like this:

  ffmpeg -i Fargo(1996).mkv -vf scale=1080:-2 -b:v 800k -acodec copy -scodec copy Fargo(1996)-smaller.mkv

Some research and some trial-and-error were involved, in arriving at this cmd...especially, the video-filter scaling portion.

The choice of 1080 for the output's width was arbitrary...a mid-range value. The height value of '-2' is shorthand for asking ffmpeg to preserve the aspect-ratio of the input file, but ensuring that the height is divisible by 2 (which is a relatively little-understood constraint/rule that ffmpeg has). And, the need to specify that the 'scodec' be copied wasn't obvious to me until I happened to choose an input file that contained a sub-title track (actually, it contained MULTIPLE sub-title language tracks). So this cmd is saying to copy the first audio stream and the first sub-title stream (if present), but then drop any secondary audio and subtitle tracks that might be present.

The video bitrate of 800k was chosen as a 'reasonable' value, after I encountered several MKV files with bitrates 10 times higher than that! (I suspect that such files were extracted from BLUE-RAY movie DVDs, or other original media with very large resolutions and bitrates.)

Google's "WebM" (aka VP8)-formatted video, using 'ffmpeg'

If you need to convert an MP4 video into Google's new-fangled VP8/VP9 (aka "WebM"), 'ffmpeg' can do it:

  ffmpeg -i Fargo(1996).mp4 -vcodec libvpx -b:v 500K -acodec libvorbis Fargo(1996)--webm.webm

I should mention here that I started using WebM files because HTML5 'video' and 'source' element tags support viewing of WebM files. At about the same time, I'd tried (and failed) in trying to use an MKV-file (containing H.264-video codec) in an HTML-5 webpage. When it was later suggested to me that MKV-files are usable in HTML-5 (citing that WebM files are Matroska-compliant), I did some more investigating. It turns out that WebM files are a strict subset of Matroska. So note that there are a number of restrictions that get enforced if/when you use a tool such as "mkvmerge" to produce a such a 'webm-compliant' output file.

Quoting from the "mkvmerge" util's documentation, it states that when you use the '-w' or '--webm' option, the rules/results then become:

Creates a WebM compliant file. This is also turned on if the output file name's extension is "webm". This mode enforces several restrictions.
The only codecs allowed are VP8 or VP9 for the video, and Opus or Vorbis for the audio streams. Neither chapters nor tags are allowed.
The DocType header item is changed to "webm".

Understanding aspect-ratios and FFMPEG's "scale", "setdar" and "setsar" video-filters

(Managing and converting 'aspect-ratio' of video-files, etc.)

Let's say you have some older-generation video-files...e.g. some with a 4:3 aspect-ratio (for the 'almost-square' shape of TV-screens in the 1950's and 60's and 70's). And, now you want them to display in the more modern 16:9 widerscreen layout common to flatscreens in the early 2000's years. So, two possible approaches are: (Approach #1) Actually alter the video's framesize (aka resolution), which involves doing a time-consuming re-formatting process (typically taking an hour or more for a 90-minute movie), or (2) just delare that the video-file's 'global attribute' referred to as its 'DAR' (Display Aspect Ratio) is something OTHER THAN the actual ratio of its width-to-height (aka 'resolution').
[ Read this, for more detailed understanding of aspect-ratio concepts ]

This latter quick-and-dirty approach causes horizontal 'stretching' the image AT VIEWING/DISPLAY time, which will somewhat distort round objects (e.g. people's faces) into ovals, etc. But the tradeoff is that we won't have to alter the actual 'stored' resolution, which would save lots of processing-load. Instead of doing a full image-processing alteration pass over each frame of the video, all we need to do is to set the video-attribute called 'DAR' (Display Aspect Ratio), which tells the video-viewing software to FORCE the display's aspect-ratio into something OTHER than the actual aspect ratio...(aka the 'SAR'...Storage Aspect Ratio).

A specific example: So, a video file with, say, a resolution of 720x480 has a SAR of 4:3, and hence will appear almost square when viewed. Following approach #1, we use ffmpeg's "scale" and "setsar" video filters, to completely change the video resolution, this way:

  ffmpeg -i MyVideo---720x480.mkv -vf "scale=720:406,setsar=1" MyVideo---converted-16x9.mkv

[ Note: We have explicit forced a new resolution (of 720x406, which has a DAR of 16:9). So the resulting resolution will be "720x406" and its DAR will indicate 16:9. I consider this to be the better/proper approach, because there will NOT be any distortion...e.g. round faces will still be round, etc, etc. ]

Contrast that with using approach #2: Here, rather than altering the image's resolution, we simply run this 'ffmpeg' cmd (which will take no more than 10 secs to complete):

  ffmpeg -i MyVideo---720x480.mkv -map 0 -c copy -aspect 16:9 MyVideo---stretched-16x9.mkv

Embedding/importing subtitles into an MP4 video file, using 'ffmpeg'

Note: Of course, you could instead embed them into an MKV-container, etc. But, I chose an MP4 container, just because MP4 seems to be the video-container-of-choice for HTML-5 webpages, and that is my primary use-case.

Note that when I use the term 'embedding' for sub-titles, this is NOT the same as 'burning' them in. Embedding them simply creates an additional track (aka text-track)...this is also referred to as a 'soft-subtitle', because when the video is later watched, such a soft-subtitle can also be displayed.

Note: Also various tools (such as "mkvextract" amd "Subtitle Edit" and "Aegisub") can convert and extract and manipulate sub-title files (aka captions). Do google-searches for tutorials on how to use these tools.

A full-length movie should take only about 15 SECONDS or so for this embed/import operation, as long as you are just opaquely copying both the video and audio codec streams, as illustrated in the command below. To verify that the desired text track got created, you could use the 'mediainfo' cmd-line pgm on the output-file to see all the meta-data. In addition to the video and audio tracks, you should now see a new third 'text' track.

  ffmpeg -i Fargo(1996).mp4 -i Fargo(1996).srt -scodec mov_text -vcodec copy -acodec copy Fargo(1996)-with-softsubs.mp4

Conversely, to delete streams, ffmpeg documents a switch '-an' that removes an audio stream and another switch '-sn' that is SUPPOSED to remove subtitle streams. But, the 'sn' switch was reported broken more than three years ago, and it still is broken! Fortunately, there's a '-map_chapters' switch which solves the issue. So, given an input file with 3 streams...video, audio, and subtitle, the following cmd will drop both the audio and subtitle streams, leaving only the video stream:

  ffmpeg -i Fargo(1996).mp4 -an -map_chapters -1 Fargo(1996)-video-only.mp4

More neat 'ffmpeg' tricks... commonly, a video-camera outputs MPEG videos and you can convert them for YouTube with the following:

  ffmpeg -i MOV0010.mpg -ar 22050 -acodec libmp3lame -ab 32K -r 25 -s 320x240 -vcodec flv utube-video.flv

Here we've encoded the MPEG with the FLV codec as per YouTube specs. Apart from the audio options, which we've shown already, there are lots of other switches, like -r, which sets frame-rate for the video, which is either 25 for PAL, and 29.97 for NTSC, depending upon the region you live in. Finally with -s we resize the video to YouTube 320x240 resolution. (Of course, you can duplicate this for any online video host, as long as you know their video specs.)

Another switch of interest is -t, which clips a video and encodes only the specified length of time. For example, -t 10 will encode the first 10 seconds. You can also jump to a specific time in the movie with -ss and encode for a fixed duration from there. For example:

   ffmpeg -i MOV0010.mpg -acodec copy -r 25 -s 320x240 -vcodec flv -ss 00:10:00 -t 128 utube-video.flv

This encodes 128 seconds of video after skipping the first 10 minutes. You can specify time for both -ss and -t either in seconds or the hh:mm:ss format.

Another important switch is '-vol' (especially for ring-tones), which allows you to increase the volume-level of audio. The normal level is 256, so '-vol 1024' would quadruple the volume level of a normal-level audio file, which I actually needed.

How to create animated-images from video-files (into GIFs and its newer brother: WEBPs)

   ffmpeg -i C:\Users\YourUsername\src-files\MyVideo-5secs.mp4 C:\Users\YourUsername\MyVideoImage.gif

By now, you should be able to GUESS what that 'ffmpeg' command just did. That's right, it created what is known as an animated GIF image, from one of your video files. Go try it yourself. Then go view that new image with your favorite image-viewing program. Pretty slick, right? ! ! So, if you want some technical words to explain the whys and wherefors of animated GIFs, google up an article or tutorial or whatever, and have at it.
[ Well, ok, here's such an article about GIFs.]

   ffmpeg -i C:\Users\YourUsername\src-files\MyVideo-5secs.mp4 -loop 0 C:\Users\YourUsername\MyVideoImage.webp

Ok, and that 'ffmpeg' command created the newer brother to a GIF, called a WEBP file. WEBP is some newer-fangled animated invention from our friends at Google. Oh, and notice that the only difference between these two commands is the extra "-loop 0" switch in the middle of the second, which says to tell the WEBP to loop forever, since a WEBP's default behavior is to iterate(loop) just once, whereas a GIF, by design, always loops forever.

Yeah, and if you want more info about WEBPs, here's such a WEBP article.

An 'ffmpeg' real-world transcoding example

Some context: I've built webpage(s) that allow the viewer to choose a specific movie video to watch, from a drop-down list. For each movie, rather than deploying the video file, and it's associated sprite-file containing a series of thumbnail scene-images on the webserver, I've chosen instead to deploy each pair of files for a given movie onto "Google Cloud Platform". To do the deployment of such files, Google offers both a "Chrome-browser-based GCP browser (GUI )" as well as a command-line driven GCP interface utility called "GSUTIL". I now prefer the latter command-line driven tool, once I suddenly for forced into learning about and using the latter, via my query here. For example, for the movie "Fargo", I deploy both a large (300-MB) video-file named "Fargo(1996)---H264.mp4", and a smaller sprite file containing all the thumbnail scene-images named "Fargo(1996)-sprites-512x288.png". This paragraph and one below, describe details of how I create these two files.

To really illustrate the power of the 'ffmpeg' program, here are two example cmds, for doing a series of video transformations, and they also do some audio-stream alterations. The first one burns-in, as so-called 'hard-subs. a sub-title/captions track during the single pass, doing a series of operations that I formerly used to do in two or three passes of the 'vlc' tool's cmd-line.

ffmpeg -i C:\Users\david\src-files\???.xxx -metadata title="???"
-vf "scale=1280:620,setsar=1,pad=1280:ih+100:0:0:Black,subtitles=???.srt:force_style='Fontsize=12,PrimaryColour=&HED9564&' " -vcodec libx264
-acodec mp3 -af "volume=10dB" -ar 48k -ac 2 -b:a 128k C:\Users\david\???---dcast-hard-subs.mp4

This second one doesn't burn-in the sub-title track, but rather simply creates an empty black horiz strip along the bottom, which will (optionally, during playback) contain the separate .VTT subtitle-file's contents.

ffmpeg -i C:\Users\david\src-files\???.xxx -metadata title="???"
-vf "scale=1280:620,setsar=1,pad=1280:ih+100:0:0:Black" -b:v 1M -vcodec libx264 -crf 33
-acodec mp3 -af "volume=10dB" -ar 48k -ac 2 -b:a 128k C:\Users\david\???---H264.mp4

So, the specific task(s) being carried out here on the video-stream is to first scale the input's video-resolution, into a 16:9 aspect-ratio-compliant resolution of 1280x720, but we then add rows of black pixels (the 'pad' video filter) on the bottom and sub-titles either gets rendered into the 100-pixel bottom black panel or they don't. (We specify some audio-stream values...the noteworthy ones being "...volume=10dB" and "-ac 2", which raises the audio stream's decibel-value, and creates just 2-channel-stereo (from what might have been six-channel surround-sound in the input file).

You would modify your chosen template, to have the '???' strings replaced by the filename-root (e.g. "Fargo(1996)", and the "xxx" extension by whatever the extension is on your input file (e.g. mp4 or avi or mkv, etc). Also note that the reference to the '.SRT' sub-title file uses relative notation (i.e. does NOT full device/directory notation) and thus is assuming that the SRT-file resides in the 'current-directory' that is in use in the cmdline window. The various output codec streams all get written into an "mp4" container, but of course you could likewise change that to an 'mkv' or an 'avi' container instead. [ Note that I've spread out what is a single-line cmd, so that you can see the various sub-options more easily. I've done that so that it might be clearer on other modifications you might want to make...e.g. if you don't want any burned-in sub-titles, or whatever. ]

VideoJS

On all of my On-Demand TV-show and full-length movie videos, I chose to use a video-player 'framework' called VideoJS. The framework produces a visually-identical media-player within all browsers. Using that produces a live-video frame with the usual series of controls across the bottom control-bar, similar to what you see on YouTube and Hulu, etc.

Getting started with creating a VideoJS-player-based webpage

For the basic 'videojs' player itself, or additionally one or more of its many associated PLUGINs, you'll notice in the GitHub-based instructions/documentation of each, that they indicate that you (can/need-to (?!?) ) first download its complete implementation package from where it resides on GitHub.com. While there may be situations where you WILL want the full implementation package (to inspect its code or one of its short examples, or need to debug ITS code, etc), I recommend that you FIRST locate/identify the specific version of videojs that you want to use, in the "zencdn" CDN (e.g. "http://vjs.zencdn.net/5.11.9/video.min.js").

How to create video THUMBNAIL images, for locating a particular video scene

After using VideoJS for 3 or 4 years, one day it occurred to me that the standard VideoJS-provided progress-bar control displays only time-VALUES, as one hovers/drags along its progress-bar (aka 'seekbar'). Yet, the more capable engineers at YouTube, have moved to the forefront: on their viewer. By default, they show small thumbnail images from the video, so that the user might more easily find some given recognizable scene.

One such discussion thread on StackOverflow recommended using a special-purpose tool called 'mtn' (rather than the 'ffmpeg' tool itself), to extract the needed images from a video file, doing so in real-time, while the user was watching. (That 'mtn' tool is is available here ). That said however, I found that particular tool to be problematic...it was often skipping extractions, and, therefore I decided to do my extractions 'offline' (ahead of time). Any relative slowness in my favorite and very robust 'ffmpeg' tool would NOT be an issue. An example ffmpeg cmd to extract a video frame every 40 seconds and create a series of PNG image files (thumbnails), looks like this:

   ffmpeg   -i MyMovie.mp4   -vf  "fps=1/40, scale=512:288, hue=s=0"   MyMovie-%04d.png

I arrived at the cmd above, after consulting a basic writeup about thumbnails, at the 'FFmpeg' website, on their 'wiki' page here.

Also, I learned about "maximum decoded pixel-size" of PNG image files here More specifically, both the Chrome and Firefox mobile browsers wouldn't load my initial PNG sprite-files, initially forcing me down to a thumbnail/frame size of 256x144. Later on, it occurred to me that YouTube's choice of such a small size for thumbnails, makes them too small to see. So, I went even larger for mine...I doubled them to 512x288. To reduce the size of the then larger sprite-files, I decided to reduce the number of captured frames, from one every 30 seconds to one every 40 seconds. Seems to work just fine for me.

[ Later, I came upon the idea of producing GRAYSCALE thumbnails rather than colored thumbnails, achieving much smaller PNG files, with no visual loss of clarity! This is done by adding an additional filter of "hue=s=0", as shown above. What I did was to make the presence of a thumbnail-sprite-file optional, so that my longer duration and less-popular movies wouldn't have to support thumbnails. This was especially true for the Firefox mobile browser, which seems to have a lower-limit on the size of a sprite file that it will load, when compared to other browsers such as Chrome and Opera.

(Additionally, since that article indicates that JPEG images of larger dimensions than for PNG images are possible, I tried creating .JPG rather than .PNG sprite-files, but I discovered that the 'image-magick' tool seems to have some sort of restriction handling JPG files...I couldn't get it to even CREATE a .JPG-based sprite-file.)

Note that there's more 'magic' needed, to implement this notion EFFICIENTLY using HTML and CSS. The needed extra step is based on the concept of 'video sprites'. To begin to get your head around 'sprites', , there's a writeup describing the whys and wherefores of sprites here. And, for a more detailed implementation explanation, read the discusion here . Most importantly, notice the free tool mentioned called 'imagemagick', and note that it's available for Windows, Linux, and Mac/OSX platforms. (I also got image-magick and ffmpeg installed and working on Chrome-OS, using a preview-version of 'CrossOver'.) Note that image-magick has a cmd-line interface! For my purpose (creating a sprite-file containing horizontally appended thumbnails), I use a cmd pattern like this:

   magick   convert   +append   MyMovie-*.png   MyMovie-grayscale-sprites.png

I recently completed implementing this for many of my favorite full-length movie files. One essential javascript api that is needed is the 'appendTo' function, which is the key to placing one element-tag on top of another...e.g. placing the thumbnail-display element on top of the video-player. The 'appendTo' function is explained here. My prototype/example webpage implementation is here.





Audio topics


Use these "Section-quick-links" to navigate to the desired AUDIO section:
iPods / MP3-players     Create a music-CD (of MP3-files)     Music Album cover-art     Subaru STARLINK cover-art problem
Vinyl record recording     Music toYouTube     Cellphone ringtones

What's an MP3-player?

I've 'ripped' all my favorite song-tracks, using Windows Media Player (aka 'WMP'), from my commercially-purchased music CDs, into MP3-files on my PC. 'WMP' also contains functionality to find and download so-called 'album-art' files (which are typically .jpg images, containing images of the album covers.)

Also, I've 'burned' a few CDs of my own, which now contain my favorite mix of the MP3 songs from all my favorite musicians. I use a free third-party program called "CDBurnerXP" to produce a physical music-CD. My current music CD of my favorites contains about 70 MP3 files, for playing in my 2015 Subaru Outback, which has a touch-screen 'StarLink' console, which is also displaying 'album-art' images during playback of most of the MP3 files. [ See the complete section below, for more details on burning music CDs, for use in automobile CD-players. ]

[For details on how to "RIP" song tracks from commercial music-CDs onto your PC, see my writeups below, near bottom of this webpage.]

Four or five years ago, I also purchased an 'MP3-player'...a SanDisk "Clip Sport" and later, the "Clip Sport Plus", and populated them with these MP3 files. These portable players also have small (one-square-inch ?) video-screens capable of displaying album cover artwork, if your MP3 files contain such artwork. (More on that subject below.)

How to copy your fav MP3 music from a PC onto a USB flash-drive (e.g. for use in your car while driving)

Subaru vehicles (Outbacks and Foresters, etc) typically now have touch-screen consoles and USB-ports. The USB-port works great, for allowing you to listen to your MP3-tunes contained on a USB-flashdrive. My Subaru's touchscreen-console contains "StarLink" software, which seems to prefer all the MP3 files (and cover-art files) to be contained in a SINGLE directory/folder. So, to copy all the files contained in the whole directory-tree of my music-collection of 'ripped MP3 files', I use (an obscure) CMD-LINE cmd Let's say the CMD-window pointing to the C-drive containing a directory-tree of my collection, in the sub-directory named 'Music'. And, let's say that I've plugged a USB-flashdrive into the computer, and it got assigned the drive-letter of "D:". First, create a directory onto the flash-drive, via the cmd: "mkdir D:\Music-flatdir". Then, you could issue the following cmd, to put the whole collection of ripped-files onto the flash-drive, into that new 'flat' (single) directory:
for /r %d in (*) do copy "%d" "D:\Music-flatdir\"

[ Here's the explanation of original cmd(s)]

You're done...go ahead and remove the flash-drive, and go try it in your vehicle.

How to copy your fav MP3 music onto an MP-3 player (e.g. for use when exercising at 'Planet Fitness')

My little wired or wireless MP3 players are both SanDisk Clip Sport models. I began with the wired-earplug-only model, but now use their 'wireless-bluetooth' model that supports bluetooth headsets or earplugs (but it also has a wired earphone outlet). Both models have 4 GB of storage...I have over 200 songs on mine, and they're nowhere near full.

Ok, in contrast, my SanDisk MP3-players prefer to put the directory-tree of your collection to be exactly mirrored over on the MP3-player. First, plug the MP3-player into a USB-port on the PC. They want a COMPLETE DIRECTORY TREE to wind up on the MP3 player, so to accomplish that, I find it easiest, to use the graphical 'File Manager' application built-in to Windows OS. Launch 'File Manager', and point it to your dir-tree containing your movie collection...it would probably be: "C:\users\yourname". So, you should now see a whole list of directory-folders with the names of the various artists (below that, would probably be dirs of album-names, and below that would finally be the MP3-files themselves). So, click on that top artist's directory, and it will 'light up'. Then press simultaneously the two keys "ctrl" and "A", which should now light up ALL those artist-directories. Now, press the two keys "ctrl" and "C" (which means 'copy' i.e. remember, all that lit-up stuff. Next, navigate say, the "D:" drive (i.e. to whatever drive-letter got assigned to USB-port containing the MP3-player. Navigate down into the 'Music' directory-folder that will probably alread be there, and then press the two keys "ctrl" and "V", which starts the process of actually copying all those previously-selected tree of files onto the MP3-player. When that finishes, remove the MP3-player from the USB-port, and give a test.

How to convert and download the audio-portion of YouTube video into a local MP3 file on your computer

The conversion/downloading website I use is called "onlinevideoconverter"...to use it, you "cut/copy" the full URL of the desired video on YouTube, and then "paste" that into the appropriate field at their website The conversion step is SLOW...it can take a few minutes. Then, there's a second button you need to click on, to download the converted video to your computer.
Note: There's another similar site, named YTMP3.CC, be very careful using either of these sites...they contain virus/malware. (That said, it's straight forward to recover...see this writeup. I speak from experience.)

As a final (optional) step, I use 'ffmpeg' to insure conversion into a final MP3 file of a known (reasonably high) quality-level (bit-rate), using the command pattern:

ffmpeg -i "downloaded-file-name.mp3" -acodec libmp3lame -qscale:a 0 "The Artist - The Actual Song Name.mp3"

How to copy MP3 files onto an Android tablet or smartphone

I have copied my collection of MP3 files from my PC over onto my Android tablet. I've used both the physical USB-cable method, as well as the wireless-wifi method (WebDAV) as described below. The cover-art seemed to auto-magically come out just fine, for Android's builtin MP3-music player app.

Copying files to Android using a 'USB'-to-'mini_USB' cable

I have used this method in the past, and it worked for me. (But now it will NOT offer me the needed choice of an "MTP" connection. Maybe something changed on newer versions of Android...maybe they quit supporting 'MTP' ?!?) At any rate, I now use the 'Wifi-wireless' method below (using a 'WebDAV server'), mostly because I don't have to find/grab an acceptible USB-cable.

Copying files to Android using a Wifi-wireless 'WebDAV server'

First, go to the Google play-store and download and install the WebDav-server app. When you launch it, and click 'press button to start the WebDAV Then on your Windows-PC, launch the 'File Explorer', and click on "Computer->Map Network Drive" option, and launch 'Use a custom network location' dialog. That dialog contains a field for the network URL being shown on the Android WebDAV server app. It will be of the form "http://10.0.0.4:8080". That dialog will also allow you to specify a directory shortcut name.

Android, just like Windows, creates directory/folder names such as 'Music' and 'Videos', etc. So, in the File Explorer, navigate into that 'Music' folder on the Android-connection (that folder will initially be empty). Now navigate into your 'Music' folder on the PC-side, where you should see the list of music artists' folder names. Using keyboard shortcut keys, hit 'Cntrl-A' to select all the artist folders, then hit 'Cntrl-C' to copy those folder-references into the clipboard. Then just navigate back into the Android-side Music folder, and then hit 'Cntrl-v', which will initiate the transfer of all the files. It will probably take a minute or more for it to copy all the folders and sub-folder contents from the PC to Android. Lastly, shutdown/reboot your Android device, so it can re-catalog those media files, to provide access to them for whatever music-player app(s) that you will use to listen to your songs.

How to create a music-CD of your favorite MP3 files

You can always use the Windows-provided Windows-Media-Player (aka WMP) to rip your favorite tracks from your commercial music-CDs. And, WMP can also burn a group of them to a blank music-CD. But, both operations have limitations that can be overcome with free open-source alternatives.

RIPPING: To RIP the music, I am using (once again) Windows-Media-Player! One advantage is that you can specify EXACTLY how the track "title" (aka filename component) gets constructed. So you could have both the artist name and the song name, separated by say, a dash, as the filename. An example would then be "Bob Dylan - Simple Twist of Fate.mp3". [ My usage was for my 2015 Subaru's in-car stereo system, so that its 'List' (of tracks) layout would be to my liking...that stereo's "List" function will then present the list-entries in sorted-order, thus visually grouping each artist's songs adjacently! ] So, to specify that in WMP's 'preferences', go into "Tools->Options->RipMusic(tab), and you'll see a series of checkboxs of items and some choices for separator-characters. However, my first attempt failed to produce the filenames as I'd asked for them! The 'secrets' seemed to be to ensure that you use the 'move up' ability and move the boxes that you have checked to the TOP of their list. (Also, to be safe, click the APPLY button, before you click the OK button.) Note: An idiosyncracy of WMP's user-interace is that the menu-choices for the Rip-functions DO NOT APPEAR until you: (1)first insert a commercial-music-CD into the CD-drive, and (2)if the 'Rip-CD' button isn't visible, At the top left corner of the screen are two arrows on blue buttons. One may be greyed out. To the immediate right is a small black triangle pointing right, which probably says "Library" to the right of it. Click that triangle, and a list will appear. You may see your CD on that list, or "No Disc (G:)" where G could be any drive letter. Choose either the CD or the "No Disc" menu item. Insert your disc into the drive you chose if it isn't already, and voila..your CD-related menu bar appears, including the RIP button. (Sigh...a bug that Microsoft has never found/fixed). So, THEN you should now see a list of all the tracks on the audio-CD, with a check-box next to each song in the list. (These boxes allow you to then select and rip whichever individual tracks that you want, rather than the default of EVERY track on the CD.)

(Note: There DOES exist a third-party free program called "FreeRip" that has a slightly nicer function to do that same layout tayloring, but I found that FreeRip's biggest SHORTCOMING was that it didn't allow me to also go out and retrieve each album's artwork, which WMP does nicely! ]

BURNING: I do NOT recommend using WMP's burner functionality. Instead I'd recommend that you download and install the free open-source CD-burner, named CDBurnerXP

CDBurnerXP's important advantage is that, unlike WMP, it DOES move the so-called "CD-text" (aka 'ID3-tags') into the output files! [ Whereas, if you use WMP to burn your output music-CD, it is likely to result in no track titles at all, in the Subaru's list of tracks. All you'll see is "Track 01", "Track02", "Track03", etc. ] It is important to know that it is its first "Data disk" option that you want to use, which creates an 'iso-image' that you'll then burn onto a blank CD disk, in a subsequent step.

Understanding music album cover-art

RETRIEVING music album cover-art: Using WMP to search for and use album artwork can be a bit tricky (to determine where to click) to accomplish this! So try this: First, click the dropdown labeled 'Music' (in the vertical list along the left side). This should bring up your 'library' of music, and it should contain a square box containing either the image of that album's cover, or else just a large musical 'note'. So, now RIGHT-click on that cover image and choose "Find album info", and it will launch the dialog that you use to find and fetch artwork. Note: Having the artwork present in your 'library' of music albums MAY or MAY not be useful to the targeted media-software, depending. For my in-car 2015 Subaru, I've determined that it is getting its displayed artwork for album cover from SOMEPLACE ELSE (dynamically), because the displayed artwork is in many cases totally DIFFERENT than the artwork that WMP captured for that given album. Whereas, if you copy your MP3-library directories (which includes both MP3-files as well as your EXTERNAL, not EMBEDDED 'album-art' JPEG-image files) out to a tablet or smartphone running Android, then the artwork displayed on Android agrees with what is shown in WMP for any given album, in my experience. (More googling about Starlink on various models of vehicles, reveals that there is an updatable component called "Gracenote" that contains a large collection of album-cover artwork, which explains why StarLink isn't matching the artwork that WMP itself can collect (with your guidance!) Other google-searches also reveal that automobile systems containing Starlink have the ability to update their 'Gracenote album-art database' to something newer. (I played with that on my Subaru....it fixed some of my CD-based songs, but broke others that had been ok. (Some good news...you CAN un-do/rollback such updates.) If you want to play with this approach, here are some example instructions for doing that on some Toyoto vehicles. There is similar Subaru-related chit-chat out there, too. I'm dubious that, in general, this approach could ever resolve the issue. And when I tried to get help from my Subaru dealer, they just kept coming up with excuses, such as "you will likely just make things worse", and "your free-update entitlement period has expired, so now you will have to pay us for any such updates", etc. etc.

GPS navigation issue(s) (on my Subaru Starlink)

(Ok, a GPS issue is NOT audio-related, but I mention it here in audio section, just because we're talking about many other Subaru-specific issues.)
So, I've now also got a newer 2018 Subaru Forester...which I bought as pre-owned. It happens to have come with built-in GPS, accessible via the std button labeled 'Map'. Bottom-line is that there are TOO MANY serious anomalies (aka PROBLEMS)! The first major usage was a trip from New Hampshire down thru Maryland, into Washington, DC, for a 4-day sightseeing vacation at a hotel downtown. The first major problem that surfaced was SEVERE...it got us into town on an Interstate, and correctly took the proper exit, down onto surface streets, about a mile from our hotel. Long story short...it seemed to start taking us in circles...it never DID find our hotel. (We had to stop pedestrians and ask directions twice, before we finally arrived at the hotel.

Incidently...my GPS performance expectations...i.e. what I'm comparing this GPS to, is a much older standalone GPS unit from 'Garmin', that sticks to windshield with rubber suction cup, and came with lifetime map-updates, which I owned and used quite successfully with few minor glitches. If I recall correctly, I purchased that Garmin in about 2013 or 2014...it has a touch-screen, and is a "5-inch" model.

On the way home from Washington DC, there were no incidents, until we got near Hartford, CT, heading north on I-84. I am quite familiar with that area...driven it numerous times, so I knew where I was and knew that we were still about 10 or 15 miles south of our next 'turn' (transition off of I-84) and onto I-90...aka the so-called "Massachusetts Turnpike"...an east-west thru-way. Totally out of the blue...a good 20 minutes before getting up to I-90, the GPS unexpectedly told us to 'prepare to exit the highway' at the exit ahead (out in the middle of nowhere). Quite puzzled...but took I that next exit. It routed us up along a somewhat parallel frontage road and then wanted to turn us right, onto some other secondary road. (I then disregarded the whole mistake, and took the next entrance back ONTO I-84, and we continued on for another 20 minutes or so, before uneventfully finally getting properly vectored over and onto I-90 as expected.

TBD...(still more info I have for here, later )

The next day, now back home, I started researching (googling) the issue. First thing I learned is that Subaru Foresters, in the past few years, and into the present, have GPS software in them, from a (well-known) company called "TomTom", which is a competitor of "Garmin". My local Subaru dealer is now telling me that the built-in console unit is generic enough, that it can accept two or three (or more?) different GPS manufacturer's software, including "Garmin". But, the dealership doesn't get involved. Instead, I need to deal with an external third-party after-market company, one of which is down in Massachusetts and services much of New England area. It is named "Classic Soft Trim", and that I can contact them at: (978)657-9419. (See "classicsofttrim.com") in Wilmington, MA, or alternatively in Saco, ME, which is just south of Portand.) They are nationwide...have about 25-30 locations, scattered throughout the U.S. [TBD...pending more research, to learn of cost of such a switch/upgrade, etc, etc]

How to hook up a turntable to your PC's sound-card [Thanks, Dan!]

(e.g. so you can transfer old vinyl phonograph records onto CDs, etc.)

Your turntable might already be hooked up to your stereo receiver/amplifier component of your music system. So, find an output on the rear of the receiver/amp which says "tape 1" (or something like that). It is low power, about 1 to 2 volts, and is often referred to as an 'analog line-level' signal. This usually has RCA-jack connectors (e.g. 1 red and 1 white). Acquire a cable with RCA-plug connectors (again 1 red and 1 white) on each end. Fit onto one end, an 'adapter' that adapts red and white RCA plugs to a mini-stereo plug (i.e. 1/8-inch). [Your local RadioShack sells such a cable and adapter.] The mini-stereo (1/8 inch) plug goes into your sound-card's line-level INPUT jack, which is typically light-blue (NOT the pink 1/8-inch microphone INPUT jack and NOT the green 1/8-inch headphone/spkr OUTPUT jack).

In your software (Windows and Linux typically both come with the necessary software), set up the recording type via a sound-card dialog box for both input source and output destination. The selected input will be that blue line-level port on the sound-card and the output is typically to a FILE on your computer. The output file TYPE can be whatever your software supports (e.g. .WMA or .MP3 or .WAV or whatever). Each record-cut, track, or song is typically recorded into a separate file. Then, the series of files could be converted to other audio-file TYPES, or 'burn'ed onto a CD or loaded onto your iPod, MP3-player, cellphone, or whatever. The builtin 'Windows Media Player' supports those file-types for both 'burning' and 'ripping'. On Linux, the software I've used include 'Amarok' to play my files, 'K3B' to burn CDs, 'Kaudiocreator' to rip tracks, and 'Audacity' to edit portions of a given song into shorter demo samples or ring-tones for a cellphone. There are numerous other free software choices on Linux.).

How to make a video from a PNG image/picture-file and an MP3 audio-file (e.g. for uploading onto YouTube)


i.e. Using 'ffmpeg' commands to make a video from one mp3 and one png

Recall that you can 'probe' most ANY type of multimedia file/container, with an ffmpeg command such as:

   ffmpeg -i anyfile.typ

So, you can first use such a cmd to determine the running time of your MP3 file.

Let's assume you have a png file with name picture.png. And an mp3 file with name soundtrack.mp3.

First make a silent video with the correct length of time. So if your mp3 track lasts for 198 seconds the command would be:

   ffmpeg -loop 1 -i picture.png -t 198 silent.mp4

Then add the soundtrack:

  ffmpeg -i silent.mp4 -i soundtrack.mp3 -vcodec copy -acodec copy video.mp4

This gives you a mp4 file named video.mp4 suitable for uploading to YouTube.

Making ringtones for a cellphone from a YouTube music-video or movie sound-track

Recall that you can 'probe' most ANY type of multimedia file/container, with an ffmpeg command such as:

   ffmpeg -i anyfile.typ

Once you see what type of video and/or audio channels are present within it, then you can use 'ffmpeg' more completely, to convert channels to other types and/or strip-out individual channels into separate files. [digression: e.g. to convert the video-chan, from .flv to MPEG, while retaining audio, try: 'ffmpeg -i file.flv -target ntsc-svcd file-new.mpg']

For a ring-tone, we'll want to retain only the audio-channel from some music-video (e.g. downloaded from YouTube, as a .flv file) into an .mp3 file. So, for that, you could use an 'ffmpeg' command like:

  ffmpeg -i snippet.flv -acodec libmp3lame snippet-audio-only.mp3

or, from an MP4 file containing both a video-channel and an audio-channel of codec-type 'aac', use a cmd like:

  ffmpeg -i NeilYoung-HarvestMoon.mp4 -acodec libmp3lame -ac 1 -ar 44100 -ab 128k neil-audio-only.mp3

And, now that you have such an audio-file, you could then use a GUI-based audio-editor such as 'audacity', to snip out much smaller portions of a song or audio-track of a movie, into a ring-tone for your cellphone, or the audio-tone for your desktop-login 'announcement' or whatever.

As mentioned elsewhere, on Linux, I use the 'clive' pkg (a cmd-line, video-clip-capturer tool) to grab music-videos from YouTube. And, here's a website (among others) that gives details about building/moving a ring-tone to a cellphone:

Make ring-tone from any mp3