PDA

View Full Version : Editing WMV Video Files


narco220
9th September 2007, 16:14
Looking for a program simler to VirtualDub to edit/cut/join WMV files if anyone can point me in the right direction?

thanx

LoRd_MuldeR
9th September 2007, 16:41
For editing WMV files, you are very much limited to Windows Movie Maker and other commercial software! I'd recommend you convert your WMV files to some more open format, such as MPEG-2, MPEG-4 ASP or H.264. This gives you access to tons of OpenSource video software, such as Avidemux, VirtualDub and so on. Avisynth's DirectShowSource() (http://avisynth.org/DirectShowSource) seems to do a good job for getting the video out of WMV files. But don't forget to set the FPS properly and set ConvertFPS=true. Otherwise you will get A/V sync problems...

narco220
9th September 2007, 16:55
So DirectShowSource will convert the wmv to another format without effecting the quality? ready for use with virtualdub?
You see i need to edit a couple of wmv files join them then convert them to vob files ready for dvd player viewing.
can you recommend which software i should use ?

LoRd_MuldeR
9th September 2007, 17:14
So DirectShowSource will convert the wmv to another format without effecting the quality? ready for use with virtualdub?
You see i need to edit a couple of wmv files join them then convert them to vob files ready for dvd player viewing.
can you recommend which software i should use ?

DirectShowSource() is a command in Avisynth, which will read the video from the source file. It will work with almost any kind of input video, as long as it plays in Windows Media Player & Co (as DirectShowSource uses DirectShow filters for decoding). But don't forget to set FPS properly and set ConvertFPS=True in order to avoid sync issues with WMV files! What comes out of DirectShowShource() is RAW uncompressed video, so there is absolutely no loss! You can open your Avisynth script in VirtualDub or Avidemux to edit (crop, resize, cut, join, whatever) your video. But at the end you will have to save the result, and that's what unavoidably causes some loss (except you save to a lossless format, such as HuffYUV or FFV1, but that's not really an option in most cases). Nevertheless if you save to an up-to-date lossy format (e.g. MPEG-4 ASP or H.264), use a good encoder (e.g. Xvid or x264) and choose your encoder settings properly, the loss in quality will be negligible!


1. Download and Install Avisynth:
http://sourceforge.net/project/showfiles.php?group_id=57023&package_id=72557


2. Create the script in your favorite Text editor:

A simple script, that only loads the source video without further processing, might look like this:
DirectShowSource("C:\Some Folder\Input.wmv", FPS=25, ConvertFPS=True)
Save the script to an .avs file, like "foo.avs"


3. Open the .avs file in VirtualDub (or Avidemux)

foxyshadis
9th September 2007, 17:51
Although to answer the question directly, there's AsfCut and AsfTools. They're nothing like vdub, but they will let you cut. Or you can mux into mkv with gdsmux and cut with a number of tools, like mmg. (Unfortunately avidemux doesn't support wmv in mkv yet.)

You're definitely quite limited with wmv tools, for most purposes other formats have a lot more support. Streaming is the only reason I'd use wmv.

zambelli
10th September 2007, 04:43
I'd recommend you convert your WMV files to some more open format, such as MPEG-2, MPEG-4 ASP or H.264. This gives you access to tons of OpenSource video software, such as Avidemux, VirtualDub and so on.
You're confusing file formats and codecs there. The issue is not the codec part of WMV (VC-1), but the file format (ASF). Switching to MPEG-4 or H.264 won't gain him anything if he chooses a file format that has little support. He could just as well stick with VC-1, for example, but simply direct stream copy the video to a file format like AVI or MP4.

And while I fully agree that many other file formats have better editing support than ASF, this is not necessarily due to them being any more "open". After all, QuickTime MOV is just as proprietary but you'll find that no serious NLE app (especially on Mac OS) lacks the ability to edit MOV files. :) The ASF specification is publicly published and the WM Format SDK is public and free - the plain truth of the matter is that simply nobody has put forward the effort into developing a good ASF editor.

LoRd_MuldeR
10th September 2007, 08:50
You're confusing file formats and codecs there. The issue is not the codec part of WMV (VC-1), but the file format (ASF). Switching to MPEG-4 or H.264 won't gain him anything if he chooses a file format that has little support. He could just as well stick with VC-1, for example, but simply direct stream copy the video to a file format like AVI or MP4.

Muxing a proprietary video format, such as WMV, into a "non-standard" container (I consider AVI a "non-standard" container for WMV) won't help anything! Even if you can get the WMV stream out of it's standard ASF container and get it muxed into AVI somehow, the result (WMV in AVI) won't be any better for editing... At the same time MPEG-4 ASP in AVI is a widely-supported combination, suitable for editing... Also narco220 said he wants to create VOB files to burn on DVD, so he will have to convert the WMV streams to MPEG-2 anyway...

sumpm1
10th September 2007, 09:19
If you're looking for a program that can CONVERT wmv to other formats, then Virtualdube Mpeg-2 handles wmv files natively. I suggest you ditch wmv.

LoRd_MuldeR
10th September 2007, 12:38
If you're looking for a program that can CONVERT wmv to other formats, then Virtualdube Mpeg-2 handles wmv files natively. I suggest you ditch wmv.

Yes, VDub-MPEG2 can read ASF files, but it requires a suiteable VfW Codec! I don't think there is a suitable VfW Codec for the latest WMV versions available! And most important: VDub supports only CFR (Constant Frame Rate), but WMV uses VFR (Variable Frame Rate). Therefore WMV files will loose A/V sync when you load them into VirtualDub-MEPG2 !!! Since the A/V unsync isn't constant, a delay (time shift) cannot fix it! In the end Avisynth + DirectShowSource() with ConvertFPS=TRUE is the only reliable way to get WMV video into VDub and keep it in sync! You can use Avidemux with Avisynth+DirectShowSource() too, just use the Avisynth Proxy. Furthermore you can also use MEncoder to convert VFR WMV's to CFR and keep A/V in sync. But you will have to explicitely set the output framerate (-ofps x), otherwise MEncoder will create 1000 fps CRF video from the input VFR WMV - obviously not so good for compression. I prefer the Avisynth way, because it has given me the better results ...

zambelli
11th September 2007, 00:07
Muxing a proprietary video format, such as WMV, into a "non-standard" container (I consider AVI a "non-standard" container for WMV) won't help anything!
Huh? VC-1 is not a proprietary codec.

LoRd_MuldeR
11th September 2007, 00:16
Huh? VC-1 is not a proprietary codec.

Well, the VC-1 format might not be proprietary, but the WMV codec is! And AFAIK there is no (working) OpenSource implementation of VC-1 yet...

zambelli
11th September 2007, 03:39
Well, the VC-1 format might not be proprietary, but the WMV codec is! And AFAIK there is no (working) OpenSource implementation of VC-1 yet...
What difference does that make? A codec standard is a bitstream (decoding) standard, not an encoder standard. Is MainConcept H.264 not true H.264 because MainConcept's encoder is proprietary? WMV9 is an implementation of VC-1, and if the video bitstream inside an ASF is a VC-1 Elementary Stream, it should make no difference whether WMV9 or an open-source codec was used to encode it.

mgh
11th September 2007, 07:01
Cut Assitant (http://www.videohelp.com/tools/Cut_Assistant) will let you cut out portions from a wmv using asfbin without reencoding. You can select portions to cut out using its wideo window.
AsfJoin (http://www.videohelp.com/tools/AsfJoin) will let you join matching wmvs.

LoRd_MuldeR
11th September 2007, 12:45
What difference does that make? A codec standard is a bitstream (decoding) standard, not an encoder standard. Is MainConcept H.264 not true H.264 because MainConcept's encoder is proprietary? WMV9 is an implementation of VC-1, and if the video bitstream inside an ASF is a VC-1 Elementary Stream, it should make no difference whether WMV9 or an open-source codec was used to encode it.

I just said that M$'s WMV Codec is a proprietary piece of software - no matter if the Format it implements is open or not. That's a fact. And yes, it makes an important difference: M$'s WMV (VC-1) Codec is ClosedSource, so it cannot be included into OpenSurce tools. Right, there could be OpenSource implementations of VC-1, because the specifications of VC-1 are available, but nobody has done one so far. That might be due to the fact that we already have excellent OpenSource implementations of H.264, which is the more powerful format anyway :devil:

To get back to the topic: For the moment WMV / VC-1 is highly problematic for editing, at least when you want to use the well-known OpenSource tools. Re-muxing doesn't solve this problem at all. So the only way to go - for the moment - is converting to some widely-supported format. As said before, there are currently (at least) two reliable ways to get the Video out of the .wmv file (ASF Container holding WMV Video) and keep the A/V in sync: Avisynth + DirectShowSource() or MPlayer/MEncoder...