Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion. Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules. |
8th January 2009, 22:25 | #1721 | Link |
Aging Video Hobbyist
Join Date: Dec 2004
Location: Off the Map
Posts: 2,461
|
I didn't know there was a difference in libavcodec versions between ffdshow-tryout and ffmpeg. FWIW it was ffdshow-tryouts that has changed so much lately that I was inspired to ask in the first place...
|
10th January 2009, 17:38 | #1722 | Link |
Registered User
Join Date: Dec 2002
Posts: 5,565
|
I wanted to use the cli of DGAVCIndex with a batch file (under Windows XP) using the "for" command, but instead of doing it one by one all instances of DGAVCIndex run at the same time. Any way to change that behavior?
|
10th January 2009, 19:05 | #1725 | Link |
Aging Video Hobbyist
Join Date: Dec 2004
Location: Off the Map
Posts: 2,461
|
I-frame anomalies
I've been experiencing seemingly random frame corruptions in some of my 2-pass x264 encodings, which might occur only a couple of times in a 200,000 frame movie. In the most recent, I found just one instance of bad frames (7 of them) which occur after what appears to be an incorrect I-frame placement, i.e. the nearest I-frame was the frame immediately PRIOR to the scene change, and the first-thru-seventh frames into the new scene are (decreasingly) corrupt. I've uploaded 9 frames here (I-frame, seven bad, last good). To my eye it looks like the 2nd frame includes elements of the first frame (the grey locker door in the background).
Here's what I'd done: 1. Use DGAVCindex to make a .dga file from the original h264 video 2. Make an .avs w/DGDecode & AVCSource as input to x264 3. Make a two-pass x264 encoding, which yielded corruption at frames 155597-155603 Excerpt of the stats file from Pass 1: Code:
in:155594 out:155595 type:b q:26.00 tex:65746 mv:15608 misc:5878 imb:693 pmb:1743 smb:5724 d:s; in:155596 out:155596 type:I q:22.04 tex:1547034 mv:348958 misc:544 imb:8160 pmb:0 smb:0 d:s; in:155599 out:155597 type:P q:27.80 tex:31803 mv:9705 misc:5412 imb:138 pmb:1668 smb:6354 d:s; in:155597 out:155598 type:b q:30.00 tex:2809 mv:4908 misc:3091 imb:21 pmb:627 smb:7512 d:s; in:155598 out:155599 type:b q:30.00 tex:3431 mv:5321 misc:2952 imb:36 pmb:645 smb:7479 d:s; in:155603 out:155600 type:P q:26.98 tex:54207 mv:14962 misc:6935 imb:132 pmb:2988 smb:5040 d:s; in:155600 out:155601 type:b q:30.00 tex:4579 mv:5640 misc:3229 imb:7 pmb:675 smb:7478 d:t; in:155601 out:155602 type:b q:30.00 tex:4210 mv:5549 misc:2937 imb:7 pmb:601 smb:7552 d:s; in:155602 out:155603 type:b q:29.99 tex:4443 mv:8272 misc:4461 imb:4 pmb:1106 smb:7050 d:s; in:155607 out:155604 type:P q:26.02 tex:96382 mv:19707 misc:7047 imb:139 pmb:4204 smb:3817 d:s; I've next made another Pass 1 at the movie, this time using not DGAVCindex, but rather DirectShowSource("d:\videoAS.grf", audio=false) where videoAS.grf uses video.264 --> Arcsoft MPEG Demux --> CoreAVC Video Decoder This method yields a stats file that places the I-frame correctly it appears: Code:
in:155596 out:155595 type:P q:25.02 tex:145561 mv:27198 misc:6969 imb:1606 pmb:2668 smb:3886 d:s;595 in:155595 out:155596 type:b q:27.00 tex:41510 mv:10972 misc:5238 imb:576 pmb:1170 smb:6414 d:s; in:155597 out:155597 type:I q:23.04 tex:1368657 mv:337886 misc:537 imb:8160 pmb:0 smb:0 d:s; in:155600 out:155598 type:P q:28.12 tex:31178 mv:9646 misc:5368 imb:138 pmb:1694 smb:6328 d:s; in:155598 out:155599 type:b q:30.00 tex:2969 mv:5328 misc:3199 imb:12 pmb:675 smb:7473 d:s; in:155599 out:155600 type:b q:30.00 tex:3752 mv:5476 misc:3060 imb:37 pmb:662 smb:7461 d:s; in:155604 out:155601 type:P q:27.96 tex:33202 mv:11504 misc:6294 imb:86 pmb:2104 smb:5970 d:s; in:155601 out:155602 type:b q:30.01 tex:4305 mv:5489 misc:3294 imb:7 pmb:674 smb:7479 d:t; in:155602 out:155603 type:b q:30.00 tex:4928 mv:6322 misc:3462 imb:8 pmb:719 smb:7433 d:s; in:155603 out:155604 type:b q:30.00 tex:4817 mv:9065 misc:4726 imb:4 pmb:1216 smb:6940 d:s; I know this "calls for speculation--facts not in evidence" but does this seem like something that the libavcodec issues mentioned before might cause (selection of the previous/wrong frame as I-frame)? BTW I noticed a couple of other I-frames that occurred "1 frame too early" when looking at all the chapter points, but this one above is the only place where corruption occurred. I will soon be migrating to neuron2's NV tools instead, but it might still be a week or more and I hate unsolved mysteries! |
10th January 2009, 19:11 | #1726 | Link |
Guest
Join Date: Jan 2002
Posts: 21,901
|
Remove the encoding from the picture. Can you see any issues just viewing the script in VirtualDub? I really have no control over what x264 is doing.
Is it PAFF? Can you post a link to the source video of the affected section? Last edited by Guest; 10th January 2009 at 19:16. |
10th January 2009, 22:57 | #1727 | Link |
Aging Video Hobbyist
Join Date: Dec 2004
Location: Off the Map
Posts: 2,461
|
It's a Blu-ray disc of a feature film ("The Guardian") so no interlacing at all AFAIK. And viewing the original frame-by-frame reveals nothing; it appears perfect.
I don't know how x264 works, so I was guessing at a decoding issue in the 1st pass (whereby x264.stats assertion sometimes places an I-frame wrongly) and then again in the 2nd pass i.e. that x264 just encodes the glitches it sees. But your post caused me to do the obvious (slaps head) which is to make a snippet of the problem area and process it again. Naturally the snippet alone re-encodes perfectly across this scene break (using of course .dga as input), so a sample doesn't expose the issue. I've not done a lot of these, but seems to me that when I've seen this problem before, as this time, that it tends to occur well-into a 2 hour movie (and yes I've done extensive memtest & prime95 on this machine to no errors)... The last parts for my new Nvidia PC arrived after I posted so I'm going to focus instead on getting that built, so I can try your NV tools. Thanks for reading & replying--your expertise & active presence at doom9 is most appreciated! |
22nd January 2009, 21:10 | #1728 | Link |
Registered User
Join Date: Oct 2004
Location: France
Posts: 567
|
Hello,
Reading DGAVCDec user manual, it seems that the only way to demux an audio track using the CLI is to demux all audio streams with the -a flag. But I have seen in the GUI that a selection of audio tracks to be demuxed is possible so to you have any plan to port this feature to the CLI ? Anyway thank you very much for your work on DGAVCDec ! |
1st February 2009, 12:40 | #1733 | Link | |
FFmpeg fan
Join Date: Dec 2003
Location: Germany
Posts: 427
|
Motivated FFmpeg developer
Quote:
A motivated new developer named Ivan Schreter showed up on the ffmpeg mailing list, who is working hard on the H264 parser / time stamp issues. See e. g. this mail and this follow up. You will find more when searching the ffmpeg-devel mail archives of January and February for Ivan Schreter. Did you observe that development? Will his work help you to fix the random access problems? This guy seems to be motivated, maybe you should contact him to get your problems addressed, too. Lately there was a long discussion about libavformat usability on the mailing list, too. So now you have a good chance to get your issues addressed. Thank you for your hard work on DGAVGDec and the other tools and filters that you have provided for us. Hellfred Update: I have missed this message. So Ivan will not have that much time in the near future. Last edited by hellfred; 2nd February 2009 at 00:19. |
|
2nd February 2009, 11:21 | #1734 | Link |
Banned
Join Date: Jun 2008
Location: Too north/cold
Posts: 63
|
Hey, neuron2. I wonder, is it okey to join-demux a m2ts (AVC) file, in eac3to:
eac3to 00118.m2ts+00119.m2ts 2: mainvideo.source.1080p.264 and use it in DGAVCDec (to encode in x264), or do I lose something by demuxing to *.264, not *.m2ts? EDIT: Thanks for the answer, although I used DSS. "Herr"=Mister (translated). The other is something I don't like. "neuron2" doesn't mean someone with only 2 neurons?! Curiosity killed the cat Thinking of your avatar. Last edited by AntiJw; 3rd February 2009 at 00:08. |
4th February 2009, 02:43 | #1736 | Link |
Moderator
Join Date: Feb 2005
Location: Spain
Posts: 6,915
|
Sorry if is a old question.
But, if we can't use a list of m2ts files (like vob's with DGIndex), if the decoder is libavcodec.dll like in ffdshow (installed), what is the difference between use AVCSource("D:\Video\00001.dga") supposed 00001.dga the DGAVCIndex output from D:\Video\00001.m2ts and DirectShowSource("D:\Video\00001.m2ts", audio=false) ?
__________________
BeHappy, AviSynth audio transcoder. |
|
|