Log in

View Full Version : BeSplit vs AC3Fix


FreQi
28th January 2004, 07:42
I've been using BeSplit via the BeSliced GUI for some time now and have been pretty pleased with the results. I recently had some trouble getting one my of encodes to yield some accurate A/V sync, and someone suggested I try using AC3Fix instead. So I did, and the audio and video was magically sync'd...

Then I tried to encode the fixed AC3 to an MP3 using BeSweet, and I noticed in the log something about a CRC Error. I decided to drop the Fixed AC3 that AC3Fix generated through BeSplit, and sure enough, it claims to have fixed some errors in the file, even tho AC3Fix had supposedly repaird those errors already. This resulting AC3 did not seem to be in sync anymore like the one from AC3Fix.

So I'm sitting here wondering if these CRC Errors BeSweet is reporting even matter. The MP3 it makes does sound fine, even at the time stamps it reports these errors to be at. For that matter, the AC3 seems to be fine as well (it plays in Media Player and WinDVD anyway).

Also, when I use AC3Fix, it does report a "Final wrongness" that I've seen range several hundred bytes both positive and negative values. Should I be concerned about this? I imagine this is why BeSliced is able to apply yet another fix to the files when AC3Fix is done with it...

My next post will have all the details of what I did

FreQi
28th January 2004, 08:07
I first opened a clip in VirtualDubMod and selected the AC3 audio in direct Stream Copy mode and proceeded to cut the commercials out. I then Demuxed the AC3 to get the commercial free portion. The resulting AC3 will certainly have some stream errors in it and will need to be repaired, so I tried using AC3Fix v0.3...

Starting. Input file is F:\temp1.ac3, output file is F:\temp1.ac3_FIXED.ac3
Frame length is 1536
Checking frame 5702: Wrong frame length, expected 8756493, got 1536
Current wrongness is -221 bytes
Checking frame 19354: Wrong frame length, expected 29724650, got 1536
Writing frame
Writing frame
Current wrongness is 741 bytes
Checking frame 28068: Wrong frame length, expected 43109928, got 1536
Current wrongness is -571 bytes
Checking frame 37202: OK
Finished. Found bad frames. Final wrongness is -571 bytes


As you can see, it reports there is some "Final Wrongness". It's apparently undersized by about half a Kilobyte. Because I am not sure I trust AC3Fix just yet, I decided to drop this FIXED ac3 into BeSplit.

BeSplit v0.82 by DSPguru.
--------------------------
Logging start : 01/28/04 , 00:20:49.

C:\Program Files\BeSliced\BeSplit.exe -core( -input F:\temp1.ac3_FIXED.ac3 -prefix F:\temp1.ac3_FIXED_Fixed -fix -logfile C:\DOCUME~1\FREQI~1.REG\LOCALS~1\Temp\BeSliced.txt -type ac3 ) -profile( BeSliced v0.2 )

[00:00:00:000] +------- BeSplit -----
[00:00:00:000] | Input : F:\temp1.ac3_FIXED.ac3
[00:00:00:000] | Output Prefix : F:\temp1.ac3_FIXED_Fixed
[00:00:00:000] +---------------------
[00:10:19:264] Stream error : Sync found after 3054 bytes
[00:19:50:304] | Writing F:\temp1.ac3_FIXED_Fixed01.ac3
[00:19:50:304] +---------------------
[00:19:50:304] Operation Completed !
[00:00:04:000] <-- Process Duration
Logging ends : 01/28/04 , 00:20:53.

So it says there is still an error in the stream. For now, I'll pretend I didn't see that and just encode the file from AC3Fix to an MP3 for my XviD and see what happens.

BeSweet v1.5b25 by DSPguru.
--------------------------
Using azid.dll v1.9 (b922) by Midas (midas@egon.gyaloglo.hu).
Using lame_enc.dll v1.32 (8/8/2003), Engine 3.90 <http://www.mp3dev.org/>.

Logging start : 01/28/04 , 00:22:32.

C:\Program Files\BeSweetv1.5\BeSweet.exe -core( -input f:\temp1.ac3_FIXED.ac3 -output f:\temp1.ac3_FIXED.mp3 -logfile C:\Program Files\BeSweetv1.5\BeSweet.log ) -azid( -n1 -c normal -g 10db -L -3db ) -ota( -G 0.98 ) -lame( --preset r3mix ) -profile( ~~~~~ Default Profile ~~~~~ )

[00:00:00:000] +------- BeSweet -----
[00:00:00:000] | Input : f:\temp1.ac3_FIXED.ac3
[00:00:00:000] | Output: f:\temp1.ac3_FIXED.mp3
[00:00:00:000] | Floating-Point Process: Yes
[00:00:00:000] | PostGain normalize to : 0.98
[00:00:00:000] +-------- AZID -------
[00:00:00:000] | Input Channels Mode: 3/2, Bitrate: 384kbps
[00:00:00:000] | Output Stereo mode: Dolby surround compatible
[00:00:00:000] | Total Gain: 10.000dB, Compression: Normal
[00:00:00:000] | LFE levels: To LR -3.0dB, To LFE 0.0dB
[00:00:00:000] | Center mix level: BSI
[00:00:00:000] | Surround mix level: BSI
[00:00:00:000] | Dialog normalization: -4dB
[00:00:00:000] | Rear channels filtering: No
[00:00:00:000] | Source Sample-Rate: 48.0KHz
[00:00:00:000] +-------- LAME -------
[00:00:00:000] | 'r3mix' preset is used
[00:00:00:000] +---------------------
[00:19:50:368] Gain of 6.0dB had been asserted to file.
[00:19:50:368] Conversion Completed !
[00:19:50:368] Actual Avg. Bitrate : 131kbps
[00:02:36:000] <-- Transcoding Duration

Logging ends : 01/28/04 , 00:25:08.

BeSweet doesn't complain about anything, so it seems like everything should be fine. But I was still wodering about that left over stream erros that BeSliced picked up. I figured it was a fluke and I'd let it go and move on to the next episode.

I followed the same steps as I usually do. First I cut the commercials and demuxed the AC3 then ran it through AC3Fix.

Starting. Input file is F:\temp2.ac3, output file is F:\temp2.ac3_FIXED.ac3
Frame length is 1536
Checking frame 8334: Wrong frame length, expected 12798195, got 1536
Writing frame
Current wrongness is -452 bytes
Checking frame 17487: Wrong frame length, expected 26857655, got 1536
Writing frame
Writing frame
Current wrongness is 700 bytes
Checking frame 25742: Wrong frame length, expected 39537719, got 1536
Writing frame
Current wrongness is 225 bytes
Checking frame 39089: OK
Finished. Found bad frames. Final wrongness is 225 bytes

This time the Final Wrongness was a positive value, indicating it has more data than it should. I figured I'll just drop it in BeSweet and see what happens...

BeSweet v1.5b25 by DSPguru.
--------------------------
Using azid.dll v1.9 (b922) by Midas (midas@egon.gyaloglo.hu).
Using lame_enc.dll v1.32 (8/8/2003), Engine 3.90 <http://www.mp3dev.org/>.

Logging start : 01/28/04 , 00:32:16.

C:\Program Files\BeSweetv1.5\BeSweet.exe -core( -input f:\temp2.ac3_FIXED.ac3 -output f:\temp2.ac3_FIXED.mp3 -logfile C:\Program Files\BeSweetv1.5\BeSweet.log ) -azid( -n1 -c normal -g 10db -L -3db ) -ota( -G 0.98 ) -lame( --preset r3mix ) -profile( ~~~~~ Default Profile ~~~~~ )

[00:00:00:000] +------- BeSweet -----
[00:00:00:000] | Input : f:\temp2.ac3_FIXED.ac3
[00:00:00:000] | Output: f:\temp2.ac3_FIXED.mp3
[00:00:00:000] | Floating-Point Process: Yes
[00:00:00:000] | PostGain normalize to : 0.98
[00:00:00:000] +-------- AZID -------
[00:00:00:000] | Input Channels Mode: 3/2, Bitrate: 384kbps
[00:00:00:000] | Output Stereo mode: Dolby surround compatible
[00:00:00:000] | Total Gain: 10.000dB, Compression: Normal
[00:00:00:000] | LFE levels: To LR -3.0dB, To LFE 0.0dB
[00:00:00:000] | Center mix level: BSI
[00:00:00:000] | Surround mix level: BSI
[00:00:00:000] | Dialog normalization: -4dB
[00:00:00:000] | Rear channels filtering: No
[00:00:00:000] | Source Sample-Rate: 48.0KHz
[00:00:00:000] +-------- LAME -------
[00:00:00:000] | 'r3mix' preset is used
[00:00:00:000] +---------------------
[00:09:19.488] E7: CRC error
[00:13:43.616] E7: CRC error
[00:20:50:816] Gain of 9.0dB had been asserted to file.
[00:20:50:816] Conversion Completed !
[00:20:50:816] Actual Avg. Bitrate : 131kbps
[00:02:40:000] <-- Transcoding Duration

Logging ends : 01/28/04 , 00:34:56.


Well, now BeSweet is saying it found some CRC Errors. Just for kicks, I dropped this second FIXED ac3 into BeSplit to see what it had to say.

BeSplit v0.82 by DSPguru.
--------------------------
Logging start : 01/28/04 , 00:36:49.

C:\Program Files\BeSliced\BeSplit.exe -core( -input F:\temp2.ac3_FIXED.ac3 -prefix F:\temp2.ac3_FIXED_Fixed -fix -logfile C:\DOCUME~1\FREQI~1.REG\LOCALS~1\Temp\BeSliced.txt -type ac3 ) -profile( BeSliced v0.2 )

[00:00:00:000] +------- BeSplit -----
[00:00:00:000] | Input : F:\temp2.ac3_FIXED.ac3
[00:00:00:000] | Output Prefix : F:\temp2.ac3_FIXED_Fixed
[00:00:00:000] +---------------------
[00:04:26:656] Stream error : Sync found after 1534 bytes
[00:09:19:520] Stream error : Sync found after 3058 bytes
[00:13:43:648] Stream error : Sync found after 1530 bytes
[00:20:50:688] | Writing F:\temp2.ac3_FIXED_Fixed01.ac3
[00:20:50:688] +---------------------
[00:20:50:688] Operation Completed !
[00:00:04:000] <-- Process Duration
Logging ends : 01/28/04 , 00:36:53.


Looks to me like there were three errors in the stream, even tho BeSweet only complained about two of them. So I started to wonder what did AC3Fix do anyway? If BeSplit is still finding errors in the streams, did it manage to fix any? So I dropped the AC3's that I originally demuxed into BeSplit to see how many errors it would correct.

BeSplit v0.82 by DSPguru.
--------------------------
Logging start : 01/28/04 , 00:40:30.

C:\Program Files\BeSliced\BeSplit.exe -core( -input F:\temp1.ac3 -prefix F:\temp1_Fixed -fix -logfile C:\DOCUME~1\FREQI~1.REG\LOCALS~1\Temp\BeSliced.txt -type ac3 ) -profile( BeSliced v0.2 )

[00:00:00:000] +------- BeSplit -----
[00:00:00:000] | Input : F:\temp1.ac3
[00:00:00:000] | Output Prefix : F:\temp1_Fixed
[00:00:00:000] +---------------------
[00:00:00:032] Stream error : Sync found after 1289 bytes
[00:03:02:432] Stream error : Sync found after 219 bytes
[00:10:19:264] Stream error : Sync found after 2101 bytes
[00:14:58:080] Stream error : Sync found after 1307 bytes
[00:19:50:304] | Writing F:\temp1_Fixed01.ac3
[00:19:50:304] +---------------------
[00:19:50:304] Operation Completed !
[00:00:03:000] <-- Process Duration
Logging ends : 01/28/04 , 00:40:33.

BeSplit v0.82 by DSPguru.
--------------------------
Logging start : 01/28/04 , 00:41:25.

C:\Program Files\BeSliced\BeSplit.exe -core( -input F:\temp2.ac3 -prefix F:\temp2_Fixed -fix -logfile C:\DOCUME~1\FREQI~1.REG\LOCALS~1\Temp\BeSliced.txt -type ac3 ) -profile( BeSliced v0.2 )

[00:00:00:000] +------- BeSplit -----
[00:00:00:000] | Input : F:\temp2.ac3
[00:00:00:000] | Output Prefix : F:\temp2_Fixed
[00:00:00:000] +---------------------
[00:00:00:032] Stream error : Sync found after 242 bytes
[00:04:26:656] Stream error : Sync found after 1986 bytes
[00:09:19:520] Stream error : Sync found after 1913 bytes
[00:13:43:648] Stream error : Sync found after 2004 bytes
[00:20:50:688] | Writing F:\temp2_Fixed01.ac3
[00:20:50:688] +---------------------
[00:20:50:688] Operation Completed !
[00:00:02:000] <-- Process Duration
Logging ends : 01/28/04 , 00:41:27.

So I'm not sure how I feel about AC3Fix at this point. It does not seem to be fixing the AC3 stream, at least not according to any of DSPGuru's tools. However, the AC3's I get from BeSplit are not as in sync as the ones I get from AC3Fix.

So what choice do I have really? Use the apparently broken but in sync AC3 from AC3Fix, or the Fixed but slightly out of sync AC3 from BeSplit?

Or am I doing something wrong maybe?

KpeX
28th January 2004, 20:23
What is the source of these b0rked AC3 streams? If DVD, I recommend you use BeSweet in vob-input mode.

FreQi
28th January 2004, 21:08
Nope, they are from ABC's ota HDTV broadcast. It's 5.1 at 384k. and the streams themselves are fine. The errors are only there because I cut the stream with virtualdubmod to edit out the commercials.

FreQi
29th January 2004, 08:29
So, since no one seems to have any comments on the matter, can anyone else produce the same results? Having BeSliced fix AC3's the AC3Fix says it... fixed?