If you have a Nissan or Infiniti vehicle with the in vehicle entertainment system, you probably noticed that USB was an optional video source. You might have even put some videos on a flash drive and tried to play them. But as of 2014, the Nissan system is still using a 13 year old Codec called DivX. It's not the greatest quality, and the files are big, but it does work and it was really cheap for Nissan. To put it bluntly, that $2000 entertainment systems uses the same format that your $50 10 year old DVD player uses. That being said, this guide will show you how to convert any videos you have, DVD rips, downloads or home videos, into the proper format so that you can play them in your car.
The first thing you'll need to do is to compile a list of videos to put onto that flash drive. It's easiest if you put them all in one folder, but if you're organized, that's not really critical. There are lots of guides to teach you how to use Handbrake to rip DVDs or use to download YouTube videos (Technically against the ToS) so I won't go into that here. Most likely you're doing this for your kids so that you don't have to change discs or press play for them, after all this is 2014! I've found all sorts of great kids materials online and we've ripped several movies for them. A great idea is two Flash drives, one with short clips for short trips, and other discs full of full length videos. Since you can often get a digital copy when you buy a Blu-Ray, you can use those too.
Now you'll need to convert those videos into a format your car can recognize. To do this, you'll need to do what's called "Transcoding" which is to convert them from whatever format they are currently in, to a DivX compatible format with the Right FourCC code. The easiest, legal and free solution I've found is to use WinFF which is really just a graphical interface to the ffMPEG transcoder. They make a similar OSX version as well , but this guide is for Windows and Linux Users. Download the latest version of WinFF from here: _new/downloads.html
If you have a new computer, you probably have a 64Bit Operating System. You always want to use the 64-Bit version of software if you can since it can use up all that powerful hardware without limitations. But if you try the 64 bit version and it doesn't work, just download the (all windows versions)
Now you just have to wait. A black DOS screen will come up as it converts the video, frame by frame into the right format. Depending on the speed of your computer and the amount of videos you're converting, this could take from 5 minutes for a single video clip up to hours for several full length films. Just be patient.
Now power up your system. You can use either the front screen or the remote to change the source to USB. Press Play and Viola! You should start seeing your videos playing on screen. By default, they'll just play in alphabetical order which might be fine. If you'd like to change the order, just stick he drive back in your computer and put a number in front of each video. Since the system will sort by numbers before letters, it will let you order the videos however you'd like. You also have the option of sorting files into folders which you can skip via the remote or the front screen.
If you need to control the rear DVD player, just press the AUX button. You can even press List button to see all of the files on disc. In case you didn't know, you won't be able to see the video on the front screen unless you press the parking brake.
ffmpeg reads from an arbitrary number of input "files" (which can be regularfiles, pipes, network streams, grabbing devices, etc.), specified by the-i option, and writes to an arbitrary number of output "files", which arespecified by a plain output url. Anything found on the command line whichcannot be interpreted as an option is considered to be an output url.
Each input or output url can, in principle, contain any number of streams ofdifferent types (video/audio/subtitle/attachment/data). The allowed number and/ortypes of streams may be limited by the container format. Selecting whichstreams from which inputs will go into which output is either done automaticallyor with the -map option (see the Stream selection chapter).
To refer to input files in options, you must use their indices (0-based). E.g.the first input file is 0, the second is 1, etc. Similarly, streamswithin a file are referred to by their indices. E.g. 2:3 refers to thefourth stream in the third input file. Also see the Stream specifiers chapter.
As a general rule, options are applied to the next specifiedfile. Therefore, order is important, and you can have the sameoption on the command line multiple times. Each occurrence isthen applied to the next input or output file.Exceptions from this rule are the global options (e.g. verbosity level),which should be specified first.
ffmpeg calls the libavformat library (containing demuxers) to readinput files and get packets containing encoded data from them. When there aremultiple input files, ffmpeg tries to keep them synchronized bytracking lowest timestamp on any active input stream.
Encoded packets are then passed to the decoder (unless streamcopy is selectedfor the stream, see further for a description). The decoder producesuncompressed frames (raw video/PCM audio/...) which can be processed further byfiltering (see next section). After filtering, the frames are passed to theencoder, which encodes them and outputs encoded packets. Finally, those arepassed to the muxer, which writes the encoded packets to the output file.
Before encoding, ffmpeg can process raw audio and video frames usingfilters from the libavfilter library. Several chained filters form a filtergraph. ffmpeg distinguishes between two types of filtergraphs:simple and complex.
Simple filtergraphs are those that have exactly one input and output, both ofthe same type. In the above diagram they can be represented by simply insertingan additional step between decoding and encoding:
Note that some filters change frame properties but not frame contents. E.g. thefps filter in the example above changes number of frames, but does nottouch the frame contents. Another example is the setpts filter, whichonly sets timestamps and otherwise passes the frames unchanged.
Complex filtergraphs are those which cannot be described as simply a linearprocessing chain applied to one stream. This is the case, for example, when the graph hasmore than one input and/or output, or when output stream type is different frominput. They can be represented with the following diagram:
Complex filtergraphs are configured with the -filter_complex option.Note that this option is global, since a complex filtergraph, by its nature,cannot be unambiguously associated with a single stream or file.
A trivial example of a complex filtergraph is the overlay filter, whichhas two video inputs and one video output, containing one video overlaid on topof the other. Its audio counterpart is the amix filter.
Stream copy is a mode selected by supplying the copy parameter to the-codec option. It makes ffmpeg omit the decoding and encodingstep for the specified stream, so it does only demuxing and muxing. It is usefulfor changing the container format or modifying container-level metadata. Thediagram above will, in this case, simplify to this:
Since there is no decoding or encoding, it is very fast and there is no qualityloss. However, it might not work in some cases because of many factors. Applyingfilters is obviously also impossible, since filters work on uncompressed data.
While decoders are normally associated with demuxer streams, it is also possibleto create "loopback" decoders that decode the output from some encoder and allowit to be fed back to complex filtergraphs. This is done with the -decdirective, which takes as a parameter the index of the output stream that shouldbe decoded. Every such directive creates a new loopback decoder, indexed withsuccessive integers starting at zero. These indices should then be used to referto loopback decoders in complex filtergraph link labels, as described in thedocumentation for -filter_complex.
ffmpeg provides the -map option for manual control of stream selection in eachoutput file. Users can skip -map and let ffmpeg perform automatic stream selection asdescribed below. The -vn / -an / -sn / -dn options can be used to skip inclusion ofvideo, audio, subtitle and data streams respectively, whether manually mapped or automaticallyselected, except for those streams which are outputs of complex filtergraphs.
In the absence of any map options for a particular output file, ffmpeg inspects the outputformat to check which type of streams can be included in it, viz. video, audio and/orsubtitles. For each acceptable stream type, ffmpeg will pick one stream, when available,from among all the inputs.
If there are any complex filtergraph output streams with unlabeled pads, they will be addedto the first output file. This will lead to a fatal error if the stream type is not supportedby the output format. In the absence of the map option, the inclusion of these streams leadsto the automatic stream selection of their types being skipped. If map options are present,these filtergraph streams are included in addition to the mapped streams.
Stream handling is independent of stream selection, with an exception for subtitles describedbelow. Stream handling is set via the -codec option addressed to streams within aspecific output file. In particular, codec options are applied by ffmpeg after thestream selection process and thus do not influence the latter. If no -codec option isspecified for a stream type, ffmpeg will select the default encoder registered by the outputfile muxer.
An exception exists for subtitles. If a subtitle encoder is specified for an output file, thefirst subtitle stream found of any type, text or image, will be included. ffmpeg does not validateif the specified encoder can convert the selected stream or if the converted stream is acceptablewithin the output format. This applies generally as well: when the user sets an encoder manually,the stream selection process cannot check if the encoded stream can be muxed into the output file.If it cannot, ffmpeg will abort and all output files will fail to be processed.
b37509886e