Quantcast FFmpeg: Muxing and Audio ? - digitalFAQ.com Forums [Archives]
  #1  
04-18-2004, 08:32 AM
bigggt bigggt is offline
Free Member
 
Join Date: Mar 2003
Location: IamCanadian
Posts: 848
Thanks: 0
Thanked 0 Times in 0 Posts
Hi finally got the video problems solved(i hope)

but i can't get the audio to be in sync-i have beeen using headach3e and bbmpeg for a year now with no problems (with tmpge)

Is there anything different needed to be done for Mencoder

I did an avi and got the audio to be in sync but all dvd rips i've tried the auido is way before the video,i don't know if this is important but all ac3 files i've testesd have a delay but i thiought this is taken care of in headach3e

Any suggestions

Thanx
Reply With Quote
Someday, 12:01 PM
admin's Avatar
Site Staff / Ad Manager
 
Join Date: Dec 2002
Posts: 42
Thanks: ∞
Thanked 42 Times in 42 Posts
  #2  
04-18-2004, 09:23 AM
rds_correia rds_correia is offline
Free Member
 
Join Date: Apr 2003
Location: Chinese Democracy starts now!
Posts: 2,563
Thanks: 1
Thanked 0 Times in 0 Posts
Hi bigggt,
In fact, should there be a delay in the audio it should be noticed in the audio
file name like MYMOVIE AC3 T01 3_2ch 384Kbps DELAY 100ms.ac3.
When muxing you will have to advise the muxer of such a delay.
For instance in Mplex/bbMpeg there is a panel for choosing the pack, video, audio1 and audio2 startup delays.
Make your necessary changes there.
Cheers
__________________
Rui
Reply With Quote
  #3  
04-18-2004, 01:44 PM
bigggt bigggt is offline
Free Member
 
Join Date: Mar 2003
Location: IamCanadian
Posts: 848
Thanks: 0
Thanked 0 Times in 0 Posts
thanx rds_correia

I do see that but in headach3e it loads the delay automatically and doesn't that take care of it

I have had many delays but never had to adjust anything when i used bbmpeg before as long as headach3e did the delay

Edit-ok just tried changing the delay in bbmpeg by -83 ms but it doesn't change anything
Reply With Quote
  #4  
04-23-2004, 08:29 PM
bigggt bigggt is offline
Free Member
 
Join Date: Mar 2003
Location: IamCanadian
Posts: 848
Thanks: 0
Thanked 0 Times in 0 Posts
OK did another movie and something is wrong,with avi everything works ok but dvd i can not get.

I thought i was doing the audio wrong but it seems that the final video is playing too quick(like 2 times the speed)

any ideas
Reply With Quote
  #5  
04-24-2004, 06:45 PM
vmesquita vmesquita is offline
Invalid Email / Banned / Spammer
 
Join Date: May 2003
Posts: 3,726
Thanks: 0
Thanked 0 Times in 0 Posts
There's something wronmg with IVTC routines ("forced film")
I am checking this now.
Reply With Quote
  #6  
04-24-2004, 07:32 PM
rds_correia rds_correia is offline
Free Member
 
Join Date: Apr 2003
Location: Chinese Democracy starts now!
Posts: 2,563
Thanks: 1
Thanked 0 Times in 0 Posts
Oops
Sorry bigggt,
I didn't notice your post until now.
It seems that VM already found something and is probably going to fix.
Anyway I assure you I have no problems with PAL sources.
Let's wait for VMs fix
Cheers
__________________
Rui
Reply With Quote
  #7  
04-24-2004, 08:09 PM
vmesquita vmesquita is offline
Invalid Email / Banned / Spammer
 
Join Date: May 2003
Posts: 3,726
Thanks: 0
Thanked 0 Times in 0 Posts
Looks like there's no need to use any IVTC filter if the input is fake telecined as DVDs with pulldown (movies). So do this is MencodeMe(0.22): on file operation, leave at none, and set the framerate to 23.976. This should work, accordingto this:
http://www1.mplayerhq.hu/pipermail/m...ry/030123.html

But for telecined AVIs (captured movies) or hard-telecined DVDs (some anime/cartoons), I am still trying to figure out. The IVTC filters don't seem to work...
Reply With Quote
  #8  
04-24-2004, 10:09 PM
Prodater64 Prodater64 is offline
Free Member
 
Join Date: Mar 2003
Location: Palma de Mallorca - España
Posts: 2,925
Thanks: 0
Thanked 0 Times in 0 Posts
Could the following be helpfull?

Quote:
7.11.4. Deinterlacing

If the movie is interlaced, you may want to deinterlace it as part of the ripping. It is debatable whether deinterlacing should be done at this stage. The benefit is that deinterlacing when converting to MPEG4 makes compression better, and viewing easier and less CPU intensive on computer monitors as no deinterlacing is required at that stage.

If deinterlacing at the ripping stage is a good idea depends on the DVD. If the DVD is made from film, which was shot at 24 fps, you can as well deinterlace while ripping. If, however, the original was 50/60 fps video, converting into deinterlaced 23.976/25 fps video will lose information. If you do decide to deinterlace, you can further experiment with different deinterlacing filters. See http://www.wieser-web.de/MPlayer/ for examples. A good starting point is -vf pp=fd.

If you are both cropping and deinterlacing, deinterlace before cropping. Actually, this is not necessary if the crop offset is vertically a multiple of 2 pixels. However with some other filters, like dering, you should always crop last, so it's a good habit to put the crop filter last.
7.11.5. Inverse telecine

If you are ripping a PAL DVD, which is 25 fps, you do not need to think about the fps. Just use 25 fps. NTSC DVDs on the other hand are 29.97 fps (often rounded to 30 fps, but that is not what they are). If the movie was shot for TV, you again do not need to touch the fps. But if the movie was shot on film, and hence at (exactly) 24 fps, it has been converted to 29.97 fps when making the DVD. That conversion where 12 fields are added to each 24 frames of film is called telecine. For more info about telecine, see a Google search for "telecine field 23.976".

In case you have such a telecined DVD, you will want to do inverse telecine, that is convert the movie to 23.976 fps (29.97*4/5). Otherwise camera panning will look jerky and awful. You can use -ofps 23.976 for this. Anything that is shown in theatres is shot on film and needs inverse telecine, TV shows do not.

7.12.3. Footnotes

About cropping: Video data on DVDs are stored in a format called YUV 4:2:0. In YUV video, luma ("brightness") and chroma ("color") are stored separately. Because the human eye is somewhat less sensitive to color than it is to brightness, in a YUV 4:2:0 picture there is only one chroma pixel for every four luma pixels. In a progressive picture, each square of four luma pixels (two on each side) has one common chroma pixel. You must crop progressive YUV 4:2:0 to even resolutions, and use even offsets. For example, crop=716:380:2:26 is OK but crop=716:380:3:26 is not.

When you are dealing with interlaced YUV 4:2:0, the situation is a bit more complicated. Instead of every four luma pixels in the frame sharing a chroma pixel, every four luma pixels in each field share a chroma pixel. When fields are interlaced to form a frame, each scanline is one pixel high. Now, instead of all four luma pixels being in a square, there are two pixels side-by-side, and the other two pixels are side-by-side two scanlines down. The two luma pixels in the intermediate scanline are from the other field, and so share a different chroma pixel with two luma pixels two scanlines away. All this confusion makes it necessary to have vertical crop dimensions and offsets be multiples of four. Horizontal can stay even.

For telecined video, I recommend that cropping take place after inverse telecining. Once the video is progressive you only need to crop by even numbers. If you really want to gain the slight speedup that cropping first may offer, you must crop vertically by multiples of four or else the inverse-telecine filter won't have proper data.

For interlaced (not telecined) video, you must always crop vertically by multiples of four unless you use -vf field before cropping.
See you.
Reply With Quote
  #9  
04-24-2004, 10:20 PM
Prodater64 Prodater64 is offline
Free Member
 
Join Date: Mar 2003
Location: Palma de Mallorca - España
Posts: 2,925
Thanks: 0
Thanked 0 Times in 0 Posts
I found more of this stuff.

Quote:
7.12.2. How to encode each category

As I mentioned in the beginning, example MEncoder lines below are not meant to actually be used; they only demonstrate the minimum parameters to properly encode each category.
7.12.2.1. Progressive

Progressive video requires no special filtering to encode. The only parameter you need to be sure to use is -ofps 23.976. Otherwise, MEncoder will try to encode at 29.97 fps and duplicate frames.


mencoder dvd://1 -nosound -ovc lavc -ofps 23.976
7.12.2.2. Telecined

Telecine can be reversed to retrieve the original 23.976 content, using a process called inverse-telecine. MPlayer contains two filters to accomplish this: detc and ivtc. You can read the manual page to see their differences, but for DVDs I've never had a problem with ivtc. Note that you should always inverse-telecine before any rescaling; unless you really know what you're doing, inverse-telecine before cropping, too [1]. Again, -ofps 23.976 is needed, too.


mencoder dvd://1 -nosound -vf ivtc=1 -ovc lavc -ofps 23.976
7.12.2.3. Interlaced

For most practical cases it is not possible to retrieve a complete progressive video from interlaced content. The only way to do so without losing half of the vertical resolution is to double the framerate and try to "guess" what ought to make up the corresponding lines for each field (this has drawbacks - see method 3).

Encode the video in interlaced form. Normally, interlacing wreaks havoc with the encoder's ability to compress well, but libavcodec has two parameters specifically for dealing with storing interlaced video a bit better: ildct and ilme. Also, using mbd=2 is strongly recommended [2] because it will encode macroblocks as non-interlaced in places where there is no motion. Note that -ofps is NOT needed here.

mencoder dvd://1 -nosound -ovc lavc -lavcopts ildct:ilme:mbd=2

Use a deinterlacing filter before encoding. There are several of these filters available to choose from, each with its own advantages and disadvantages. Consult mplayer -pphelp to see what's available (grep for "deint"), and search the MPlayer mailing lists to find many discussions about the various filters. Again, the framerate is not changing, so no -ofps. Also, deinterlacing should be done after cropping [1] and before scaling.

mencoder dvd://1 -nosound -vf pp=lb -ovc lavc

Unfortunately, this option is buggy with MEncoder; it ought to work well with MEncoder G2, but that isn't here yet. You might experience crahes. Anyway, the purpose of -vf tfields is to create a full frame out of each field, which makes the framerate 59.94. The advantage of this approach is that no data is ever lost; however, since each frame comes from only one field, the missing lines have to be interpolated somehow. There are no very good methods of generating the missing data, and so the result will look a bit similar to when using some deinterlacing filters. Generating the missing lines creates other issues, as well, simply because the amount of data doubles. So, higher encoding bitrates are required to maintain quality, and more CPU power is used for both encoding and decoding. tfields has several different options for how to create the missing lines of each frame. If you use this method, then Reference the manual, and chose whichever option looks best for your material. Note that when using tfields you have to specify both -fps and -ofps to be twice the framerate of your original source.

mencoder dvd://1 -nosound -vf tfields=2 -ovc lavc -fps 59.94 -ofps 59.94

If you plan on downscaling dramatically, you can excise and encode only one of the two fields. Of course, you'll lose half the vertical resolution, but if you plan on downscaling to at most 1/2 of the original, the loss won't matter much. The result will be a progressive 29.97 frames per second file. The procedure is to use -vf field, then crop [1] and scale appropriately. Remember that you'll have to adjust the scale to compensate for the vertical resolution being halved.

mencoder dvd://1 -nosound -vf field=0 -ovc lavc
7.12.2.4. Mixed progressive and telecine

In order to turn mixed progressive and telecine video into entirely progressive video, the telecined parts have to be inverse-telecined. There are two filters that accomplish this natively, but a better solution most of the time is to use two filters in conjunction (read onward for more detail).

Currently the most reliable method to deal with this type of video is to, rather than inverse-telecine the telecined parts, telecine the non-telecined parts and then inverse-telecine the whole video. Sound confusing? softpulldown is a filter that goes through a video and makes the entire file telecined. If we follow softpulldown with either detc or ivtc, the final result will be entirely progressive. Cropping and scaling should be done after the inverse-telecine operations, and -ofps 23.976 is needed.

mencoder dvd://1 -nosound -vf softpulldown,ivtc=1 -ovc lavc -ofps 23.976

-vf pullup is designed to inverse-telecine telecined material while leaving progressive data alone. Pullup doesn't really work well with the current MEncoder, though, and is really intended for use with MEncoder G2 (whenever it's ready). It works fine without -ofps, but -ofps is needed to prevent choppy output. With -ofps, it sometimes fails. The problems arise from MEncoder's behavior of dropping frames to maintain synchronization between the audio and video: it drops frames before sending them through the filter chain, rather than after. As a result, pullup is sometimes deprived of the data it needs.

If MEncoder drops too many frames in a row, it starves pullup's buffers and causes it to crash.

Even if MEncoder only drops one frame, pullup still doesn't get to see it, and will end up operating on an incorrect sequence of frames. Even though this doesn't cause a crash, pullup won't be able to make correct decisions on how to reassemble progressive frames, and will either match fields together incorrectly or drop several fields to compensate.

I haven't used -vf filmdint myself, but here's what D Richard Felker III has to say:

It's OK, but IMO it tries to deinterlace rather than doing inverse telecine too often (much like settop DVD players & progressive TVs) which gives ugly flickering and other artefacts. If you're going to use it, you at least need to spend some time tuning the options and watching the output first to make sure it's not messing up.

7.12.2.5. Mixed progressive and interlaced

There are two options for dealing with this category, each of which is a compromise. You should decide based on the duration/location of each type.

Treat it as progressive. The interlaced parts will look interlaced, and some of the interlaced fields will have to be dropped, resulting in a bit of uneven jumpiness. You can use a postprocessing filter if you want to, but it may slightly degrade the progressive parts.

This option should definitely not be used if you want to eventually display the video on an interlaced device (with a TV card, for example). If you have interlaced frames in a 23.976 frames per second video, they will be telecined along with the progressive frames. Half of the interlaced "frames" will be displayed for three fields' duration (3/59.94 seconds), resulting in a flicking "jump back in time" effect that looks quite bad. If you even attempt this, you must use a deinterlacing filter like lb or l5.

It may also be a bad idea for progressive display, too. It will drop pairs of consecutive interlaced fields, resulting in a discontinuity that can be more visible than with the second method, which shows some progressive frames twice. 29.97 frames per second interlaced video is already a bit choppy because it really should be shown at 59.94 fields per second, so the duplicate frames don't stand out as much.

Either way, it's best to consider your content and how you intend to display it. If your video is 90% progressive and you never intend to show it on a TV, you should favor a progressive approach. If it's only half progressive, you probably want to encode it as if it's all interlaced.

Treat it as interlaced. Some frames of the progressive parts will need to be duplicated, resulting in uneven jumpiness. Again, deinterlacing filters may slightly degrade the progressive parts.
Bye bye.

Link
Reply With Quote
  #10  
04-24-2004, 11:04 PM
vmesquita vmesquita is offline
Invalid Email / Banned / Spammer
 
Join Date: May 2003
Posts: 3,726
Thanks: 0
Thanked 0 Times in 0 Posts
@Prodater64
Thanks, unfortunatelly I already knew this documents.
Looks like the proper mencoder ivtc filters, i.e., ivtc and detc doesn't work right and cause sync issues. I did a stackhorizontal, comparing with telecide(), and seems that they drop frames randomly The only way to ivtc a stream that doesn't cause sync issues is really wierd:

kerndeint,divtc

divtc is a ivtc filter for de-interlaced video, yes, sound wierd, I know. There's no mention about it in the manpage nor in the mailing list. I only found out about it using mencoder -vf help. This seems to be the only filter that keeps a 5:4 output not causing sync issues. I was only surprised because I searched the mailing list and noone posted nothing about this. Anyway, this seems to work fine, causing no ghosting despite the initial deinterlacing needed.

And yes, I tried all detc and ivtc parameters. No success.

EDIT: I watched in the DVDPlayer, and seems like this filter drops the wrong frames, causing jerkiness. So no sucess yet.
Reply With Quote
  #11  
04-24-2004, 11:30 PM
Prodater64 Prodater64 is offline
Free Member
 
Join Date: Mar 2003
Location: Palma de Mallorca - España
Posts: 2,925
Thanks: 0
Thanked 0 Times in 0 Posts
@ VM
Did you see this samples too?
Reply With Quote
  #12  
04-25-2004, 09:17 AM
vmesquita vmesquita is offline
Invalid Email / Banned / Spammer
 
Join Date: May 2003
Posts: 3,726
Thanks: 0
Thanked 0 Times in 0 Posts
Nice tests!
Unfortunatelly, I couldn't find a IVTC filter/combination that works correctly.

For progressive VOBs with pulldown flag, we should use -ofps 23.976 without fps. I'll fix this in the next mencodeme release.

I also discovered that transcode (another linux encoding package, also featuring libavcodec) has a decomb port, but unfortunatelly transcode doesn't compile on cygwin.
Reply With Quote
  #13  
04-25-2004, 10:48 AM
bigggt bigggt is offline
Free Member
 
Join Date: Mar 2003
Location: IamCanadian
Posts: 848
Thanks: 0
Thanked 0 Times in 0 Posts
Thank You Guys ,I(well you ) finally got it working ,it was definately a problem with forced film because i left it as none and got my first dvd to be in sync

Now on to the next question-This is not a problem but a not knowing how on my part

I can't seem to get the proper ratio,i don't know how to get it to put it in manually

I tried laoding the source into moviestacker and using
the ressize numbers. The only reason i know its off is because in tmpge i get big black bars(top and bottom) but with mencoder i get small ones

HOw do i get the proper values

Thanx again
Reply With Quote
  #14  
04-25-2004, 10:53 AM
vmesquita vmesquita is offline
Invalid Email / Banned / Spammer
 
Join Date: May 2003
Posts: 3,726
Thanks: 0
Thanked 0 Times in 0 Posts
Click on "Unlock advanced" and use moviestacker values. But you shouldn't have problems with the built-in resize calculator. Could you give me more details?
Reply With Quote
  #15  
04-25-2004, 11:03 AM
bigggt bigggt is offline
Free Member
 
Join Date: Mar 2003
Location: IamCanadian
Posts: 848
Thanks: 0
Thanked 0 Times in 0 Posts
@ vmesquita

I did the unlock thing,what i mean is i am not sure which numbers from moviestacker to use

This is from moviestacker

Source 720x480
Film Pixel 720x480
Crop 712x480

Resize 496x336-This is what i used is this correct

I also checked with avi codec the info on the final mpeg(from Mencoder) and it says 4:3 but i selected 16:9

I will test again to make sure becuase i have so many things i am trying to test right now i could have made a mistake(i will test this and nothjing else right now)
Reply With Quote
  #16  
04-25-2004, 11:15 AM
vmesquita vmesquita is offline
Invalid Email / Banned / Spammer
 
Join Date: May 2003
Posts: 3,726
Thanks: 0
Thanked 0 Times in 0 Posts
What was the target resolution?
Reply With Quote
  #17  
04-25-2004, 11:20 AM
bigggt bigggt is offline
Free Member
 
Join Date: Mar 2003
Location: IamCanadian
Posts: 848
Thanks: 0
Thanked 0 Times in 0 Posts
OOPs sorry -528 x 480
Reply With Quote
  #18  
04-25-2004, 11:43 AM
vmesquita vmesquita is offline
Invalid Email / Banned / Spammer
 
Join Date: May 2003
Posts: 3,726
Thanks: 0
Thanked 0 Times in 0 Posts
You can't use MovieStacker resize value directly in Mencode-Me, because it doesn't crop the black borders. (I forgot that) I think the problem with mencodeme internal resizer is that you are selecting 16:9 A.R., but actually you want to create a 4:3 A.R. MPEG, with widescreen matherial This is completelly different.

You see, you don't have to select the source aspect ration in mencode-me, it autodetects. You have to select destination aspect ratio, this is generally 4:3 unless you are making an anamorphic KDVD. For KVCD/KSVCD, you should use 4:3, the proportions will be calculated correctly. Try this, and use the preview function before encoding to check if it's ok.
Reply With Quote
  #19  
04-25-2004, 12:07 PM
bigggt bigggt is offline
Free Member
 
Join Date: Mar 2003
Location: IamCanadian
Posts: 848
Thanks: 0
Thanked 0 Times in 0 Posts
@ vmesquita


Thanx buddy working good now,i was selecting 16:9,but 4:3 works perfect

Thanx for your help seems like everything is working properly now
Reply With Quote
Reply




Similar Threads
Thread Thread Starter Forum Replies Last Post
KDVD: Muxing Audio Delay Shibblet Video Encoding and Conversion 10 01-30-2005 11:22 PM
BBMpeg: errors muxing mp2 audio with m1v movie Clessy Video Encoding and Conversion 0 01-20-2004 10:33 PM
FFMPEG: Encoding Audio: toolame,mp2enc or ffmpeg Razorblade2000 Video Encoding and Conversion 0 10-18-2003 03:04 PM
KVCD: Cleaning up audio before Muxing with video? Bombero0437 Video Encoding and Conversion 2 09-06-2003 11:58 AM
BBMpeg: Muxing Audio and Video whhaatt Video Encoding and Conversion 0 06-25-2003 09:55 AM

Thread Tools



 
All times are GMT -5. The time now is 08:21 PM  —  vBulletin © Jelsoft Enterprises Ltd