I wanted to share a script i made to convert videos so they will play on my Fuze+
You would need Avidemux installed to use the script.
Here is a brief explanation what Avidemux is…
This program rocks ! been using it for a couple years now and dont need anything else.
Its simple to use but advanced if you want it to be.
And its truely free as in no pop ups to ask you if you wanna buy it to get additional profiles /etc
(like some other program mentioned in here)
ok so i created the script to convert to MP4 320x240 / AAC 192
but you can set the audio bitrate to whatever you want, i tested it as high 384 and it worked fine on the Fuze+
I also set the video bitrate to 1 pass @ 1,000 kbit/s but you can over-ride the scipt settings afterward
and increase the video bitrate up to 2,000 kbit/s (tested ok) and make it a 2 pass encode for better quality, in other words,
Average Bitrate (2 pass) or Constant Bitrate (single pass) the script setting default.
There is a lot more options beyond that aswell…
This will auto resize and add black borders for you but it can be easily overridden. Avidemux comes with a lot of good filters.
Its as simple as loading your video and selecting the scipt in the gui and selecting “Save Video”
The trick to this was making the encoder settings good enough but still H.264 Baseline Level 2.0 compliant
Level 2.0 means no higher than 352×288 @ 30fps and VBV maximum bit rate = 2000 & VBV buffer size = 2000
So… don’t set your video dimensions higher than that or the video bitrate higher than 2000.
anyway here is the script, save it to a file with the .js extention and put it into the scripts/auto folder in the Avidemux Install folder, without the [script] and [/script] lines.
[script]
//AD <- Needed to identify//
// Sansa Fuze+ MP4 H.264 Baseline Level 2.0 Video Conversion Script by xpmule 01/02/2011
// Script is designed for Avidemux - http://avidemux.org
// Created for the Fuze+ community - http://forums.sandisk.com/t5/Fuze/bd-p/Fuzeplus
include(“video/autoWizard.js”);
include(“video/filter.js”);
var app = new Avidemux();
if (app.video == null)
displayError(“Please open a video first”);
else
{
var result = videoAutoWizard(“Dimensions”, [[320, 240], [352, 288]]);
if (result)
{
var targetX = result[0][0];
var targetY = result[0][1];
var sourceRatio = result[1][0] + “:” + result[1][1];
var destinationRatio = result[2][0] + “:” + result[2][1];
resizeAndFillVideo(targetX, targetY, sourceRatio, destinationRatio);
//** Video Codec conf **
app.video.codecPlugin(“32BCB447-21C9-4210-AE9A-4FCE6C8588AE”, “x264”, “CBR=1000”, “<?xml version=‘1.0’?><x264Config><presetConfiguration><name>x264_Fuze</name><type>user</type></presetConfiguration><x264Options><fastFirstPass>true</fastFirstPass><threads>0</threads><deterministic>true</deterministic><sliceThreading>false</sliceThreading><threadedLookahead>-1</threadedLookahead><idcLevel>20</idcLevel><vui><sarAsInput>false</sarAsInput><sarHeight>1</sarHeight><sarWidth>1</sarWidth><overscan>undefined</overscan><videoFormat>undefined</videoFormat><fullRangeSamples>false</fullRangeSamples><colorPrimaries>undefined</colorPrimaries><transfer>undefined</transfer><colorMatrix>undefined</colorMatrix><chromaSampleLocation>0</chromaSampleLocation></vui><referenceFrames>1</referenceFrames><gopMaximumSize>250</gopMaximumSize><gopMinimumSize>0</gopMinimumSize><scenecutThreshold>40</scenecutThreshold><periodicIntraRefresh>false</periodicIntraRefresh><bFrames>0</bFrames><adaptiveBframeDecision>1</adaptiveBframeDecision><bFrameBias>0</bFrameBias><bFrameReferences>normal</bFrameReferences><loopFilter>true</loopFilter><loopFilterAlphaC0>0</loopFilterAlphaC0><loopFilterBeta>0</loopFilterBeta><cabac>false</cabac><openGop>disabled</openGop><interlaced>disabled</interlaced><constrainedIntraPrediction>false</constrainedIntraPrediction><cqmPreset>flat</cqmPreset><intra4x4Luma><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value></intra4x4Luma><intraChroma><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value></intraChroma><inter4x4Luma><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value></inter4x4Luma><interChroma><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value></interChroma><intra8x8Luma><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value></intra8x8Luma><inter8x8Luma><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value><value>16</value></inter8x8Luma><analyse><partitionI4x4>true</partitionI4x4><partitionI8x8>false</partitionI8x8><partitionP8x8>true</partitionP8x8><partitionP4x4>true</partitionP4x4><partitionB8x8>false</partitionB8x8><dct8x8>false</dct8x8><weightedPredictionPframes>none</weightedPredictionPframes><weightedPrediction>true</weightedPrediction><directPredictionMode>spatial</directPredictionMode><chromaLumaQuantiserDifference>0</chromaLumaQuantiserDifference><motionEstimationMethod>hexagonal</motionEstimationMethod><motionVectorSearchRange>12</motionVectorSearchRange><motionVectorLength>-1</motionVectorLength><motionVectorThreadBuffer>-1</motionVectorThreadBuffer><subpixelRefinement>7</subpixelRefinement><chromaMotionEstimation>true</chromaMotionEstimation><mixedReferences>true</mixedReferences><trellis>disabled</trellis><fastPSkip>true</fastPSkip><dctDecimate>true</dctDecimate><psychoRdo>1</psychoRdo><noiseReduction>0</noiseReduction><interLumaDeadzone>21</interLumaDeadzone><intraLumaDeadzone>11</intraLumaDeadzone></analyse><rateControl><quantiserMinimum>16</quantiserMinimum><quantiserMaximum>51</quantiserMaximum><quantiserStep>4</quantiserStep><maximumConstantRateFactor>0</maximumConstantRateFactor><averageBitrateTolerance>1</averageBitrateTolerance><vbvMaximumBitrate>2000</vbvMaximumBitrate><vbvBufferSize>2000</vbvBufferSize><vbvInitialOccupancy>0.9</vbvInitialOccupancy><ipFrameQuantiser>1.4</ipFrameQuantiser><pbFrameQuantiser>1.3</pbFrameQuantiser><adaptiveQuantiserMode>variance</adaptiveQuantiserMode><adaptiveQuantiserStrength>1</adaptiveQuantiserStrength><mbTree>true</mbTree><frametypeLookahead>40</frametypeLookahead><quantiserCurveCompression>0.6</quantiserCurveCompression><reduceFluxBeforeCurveCompression>20</reduceFluxBeforeCurveCompression><reduceFluxAfterCurveCompression>0.5</reduceFluxAfterCurveCompression></rateControl><accessUnitDelimiters>false</accessUnitDelimiters><spsIdentifier>0</spsIdentifier><sliceMaxSize>0</sliceMaxSize><sliceMaxMacroblocks>0</sliceMaxMacroblocks><sliceCount>0</sliceCount><hrd>none</hrd></x264Options></x264Config>”);
if (app.audio.targetTrackInfo.length > 0)
{
if (app.audio.targetTrackInfo[0].codec != “AAC” || app.audio.targetTrackInfo[0].channelCount != 2)
{
app.audio.codec(“Faac”, 192, 4, "c0 00 00 00 ");
if (app.audio.targetTrackInfo[0].channelCount == 2)
app.audio.mixer = “NONE”;
else
app.audio.mixer = “STEREO”;
}
}
app.setContainer(“MP4”);
}
}
[/script]