In a m2toavi script (which purportedly uses mencoder) and in a m2tstoavi script (which purportedly uses ffmpeg) I note reference to the application xxffxvrt (which is an ffmpeg based converter of m2ts HD-video to quick time movies). Link here: hdffxvrt - Google Code
I have not read of any openSUSE user putting this all together, although I have read of Ubuntu users doing so …
I only stumbled across this because I am considering a camcorder purchase myself (sometime in the next few months) and in my typical ‘research BEFORE purchase’ mode, I decided to look into this in a bit more detail.
I don’t have any problems converting HD and TS/M2TS files on Linux with mencoder. I don’t know why this guy in the first link does all these steps to convert m2ts to avi. Mencoder can be fed directly to read and encode the m2ts file. It has no problem with that. In fact, I’ve done this many times with h264enc and not one time it failed. TS/M2TS is just a container which can hold MPEG-2, VC-1 or H.264 video and MP3, DTS, LPCM or AC3 audio
I’m struggling a bit to understand what is involved here. When I look at the Camcorders - AVS Forum I see a LOT of MS-Windows and MacIntosh users struggling with the HD format from video cameras. … In particular .MTS & .M2TS are causing them problems.
… I do note the application (script ? ) m2toavi purportedly uses mencoder, … but I have not thus far, found a good link for m2toavi hence it appears to be a script with a small following ? (probably not as well followed as your excellent scripts).
Most if not all digital camera’s these days use AVCHD to store their content. AVCHD itself is a modified version of the Blu-ray standard and has a very similar directory structure to BD. Inside the directory structure you’ll find m2ts files which contain the video and audio. As said, m2ts/mts is just a container (like AVI, MKV, MP4, etc) and can be demuxed by mencoder and mplayer. AVCHD allows only H.264 video and AC3/LPCM audio (which neither mplayer nor mencoder have problems with it). I have encoded a lot ts/m2ts/mts files (even ones that contain VC-1 codec) and never has mencoder failed on me so far.
I confess, I’m still struggling over this. … When I read this thread on AVCHD (with kdenlive) they talk about even playback of AVCHD videos being difficult: AVCHD playback and editing | Kdenlive
… and chat how GPU transcoding with nVidia cards and also how changes to ffmpeg should make things better.
I don’t have any problem with playing AVCHD files nor any problems encoding these with mencoder. I don’t do edits, so I can’t comment on this how easy or not it is to do under linux.
Also there’s currently no such things as GPU transcoding (= encoding). Neither ffmpeg, mencoder, x264, xvid or whatever supports GPU encoding and there are currently no pland to do it, to my knowledge. There’s only decoding support using VDPAU from NV which is present in latest NV drivers. Basically, VDPAU does the decoding on the GPU thus offloading the CPU. VDPAU is still not decently integrated into mplayer/ffmpeg. Mplayer recently added the ffmpeg12vdpau, ffvc1vdpau, ffwmv3vdpau and ffh264vdpau drivers one can select for decoding on the GPU but in my experience they are pretty buggy. Note that one needs an NV card which supports VDPAU in order to do GPU decoding. Such cards are from the 8xxx and 9xxx series. 7xxx or lower do not support this as they don’t have programmable hardware for this
This possibility (of future improvement) may drag me back to nVidia after having left due to nVidia quality issues in the 8xxx and 9xxx series (I deliberately purchased ATI graphics in my new laptop). At least this might drag me back for a new desktop PC where I can add extra cooling to minimize the probability of a failure in the graphic card, and also cope with the inconvenience of a failure (at home) easier than I can with a failure in a Laptop (on the road). At home I have backup PCs. On the road I don’t take a backup laptop with me.
Speaking of a new desktop PC, I’m still planning on a new desktop (the one I talked about last year, and the year before, and the year before. … ) around the same time that I purchase the new camcorder (April/May 2009 time frame). I’m now thinking of an Intel Core i7 … I’ve been holding off on the desktop purchase as long as I can, until I can be confident the motherboards that come with the Intel Core i7 support Linux ok. I’ve read the i7 is very good when it comes to using Non Linear Video editors with AVCHD files.
I’m not aware of any NV hardware problems, but then again, I don’t follow this specific segment of hardware. I currently use a 7100 GS and a 8400 GS and both work without any problems. There’s no overheating or quality problems here.
As for CPUs, as much as I dislike Intel for various reasons, I must admit that the Nehalem architecture is currently superior to AMD’s when it comes to raw performance. But the Core i7 is also a bit more expensive than a Phenom II. For encoding to H.264, x264 currently has a lot of optimizations for the i7 and very little for Phenom II as Jason doesn’t have a Phenom II machine yet to test and optimize, so in that regard, encoding with x264 will be faster under i7. Don’t know for editing as I usually don’t do any. I only encode stuff
I was surfing avsforum.com ( Camcorders - AVS Forum ) reading up on camcorders, when I stumbled across this URL ( Index of /footage/panasonic/hdc-sd100 ) linking to examples of “mts” (hd avchd) files from the Pansonic HDC-SD100 camcorder. Given that I am considering a purchase of the Panasonic HDC-HS300K (which I suspect will have the same output video format) I found that most interesting to play with.
Smplayer could play the files with no problem. xine had problems, although I note there is an ffmpeg update out today, and I have not tried that update yet. vlc played them with no problem.
I was able to drag them into kdenlive, although the project monitor and clip monitor in kdenlive struggled a bit in displaying the videos (for editing). I was able to edit and render them thou with kdenlive (by guessing a lot re: edit placement) and I could get some reasonable output with rendering by judicious selection of the output format. Still work is needed there, although I note I did not have the latest ffmpeg (there was an update today) and a recent ffmpeg update is supposed to significantly improve kdenlive’s editing of hd video.
I tried “xvidenc -2p -p uhq” on them (with default settings) and quality was degraded. But I suspect I was at fault there, and I needed to tune the settings, as opposed to take default. The application “tovid” was able to render them to a lower dvd pal resolution with no problem, producing a high quality dvd output mpeg (but audio was desync’d … I did not try to re-synch the audio with avidemux).
I suspect I may have encountered an mts file mplayer can NOT yet handle (or if your mplayer can handle it, then there is a problem with the packman packaged version). This is a link to a clip I found on the internet to the new Sony HDR XR-500V camcorder (and its AVHCD format): http://www.navesink.net/public_html/icicle10.MTS
The file is 51 MB in size.
vlcplays it very poorly (with no audio).
ffplay can play it (with poor audio). ffplay being an ffmpeg player.
mplayer can not recognize the video. It tries to play the audio (but I heard nothing).
I never paid much attention to the video decoding gpu’s in the past, as my computers were all old, and I had thought I might continue that approach. Then after I started looking into HDV (and later AVCHD) I came to the conclusion I wanted a fast processor to enable decoding and encoding of the videos that I planned to take with a new (yet to be purchased camcorder). Reading your post has helped me focus the research on this, although I still have a lot to learn.
As you note, nVidia are providing cards with VDPAU (Video Decode and Presentation API for Unix) and they are also providing drivers for Linux. There are various articles on this
XvBA (X-Video Bitstream Acceleration), X-Video Bitstream Acceleration - Wikipedia, the free encyclopedia - an extension by AMD for its ATI Radeon GPU of the X video extension (Xv) for the X Window System on Linux operating-systems, where its API allows video programs to offload portions of the video decoding process to the GPU video-hardware. I read it uses UVD technology,
As to what extent some or all of the above is implemented, and implemented in what drivers and what applications (such as mplayer/mencoder and ffmpeg) I’m still trying to figure out.
… I’m wondering if it is something I need to consider in my next PC purchase, where I specifically plan to purchase a PC (likely with an Intel Core i7 processor ) to process either HDV, or more likely AVCHD raw videos.
I had to cut my previous post short (needed to run off to breakfast), but I also note it may be possible that some of the above may be eventually supported by the openGL graphic drivers (although I suspect the proprietary drivers will always have the edge) using openCL (and possibly openMAX to support the implementation).
openGL (Open Graphics Library - OpenGL - Wikipedia, the free encyclopedia ) is a standard specification defining a cross-language cross-platform API for writing applications that produce 2D and 3D computer graphics.
openCL (Open Computing Language - OpenCL - Wikipedia, the free encyclopedia ) is a framework for writing programs that execute across heterogeneous platforms consisting of CPUs, GPUs, and other processors. The purpose of OpenCL is analogous to that of OpenGL and OpenAL, which are open industry standards for 3D graphics and computer audio respectively and served to extend the power of the GPU beyond graphics (GPGPU).
OpenMAX ( OpenMAX - Wikipedia, the free encyclopedia ) is a royalty-free, cross-platform set of C-language programming interfaces that provides abstractions for routines especially useful for audio, video, and still images.
Again, I’m struggling as to how much of this is just standards creation and how much makes it into practise.
I know openGL is in use today, as I use the openGL graphic drivers (instead of the proprietary drivers) on all my openSUSE-10.3 and 11.1 installations.
in addition to XvMC and XvBA, VDPAU offers full support for not only decoding, but also for postprocessing, like full deinterlace and inverse telecine on the GPU itself. I’m not very familiar with other tools than VDPAU so I can’t really comment on them much. As far as I know, most of them only offer partial support for some things (maybe with exception of UVD/VaAPI). If I was you, I’d get an i7 combined with a Geforce which fully supports VDPAU (like most of the 8xxx and 9xxx series)
I’m trying to figure out which of the PCI-express graphic cards at our local store supports vdpau
Looking at this, and the information on the web, am I the only one who finds this very confusing ?? … I find it very difficult to determine if a nVidiacard fully supports, partially supports, or does not at all support, vdpau. >:(
I confess, I’m pretty fuzzy in the technology associated with decoding, encoding, rendering … etc …
I note this:
followed by this clarification:
… presumebly that postprocessing is not considered encoding …
Still, it does read that vdpau would help one who is using a NonLinear Video editor (such as kdenlive) to produce a home movie, as I think a lot of the non linear video editing application process involves lots of decoding.
I note this interesting article on vdpau, with test of slow AMD Sempron LE-1150 (single core “Spartica” processor @ 2.0 Ghz) with 2GB RAM on motherboard, with an ASUS GeForce 8400GS (256MB of GDDR2 video memory), where that 8400 GS supported vdpau.
[Phoronix] HD Video Playback With A $20 CPU & $30 GPU On Linux](http://www.phoronix.com/scan.php?page=article&item=nvidia_vdpau_gpu&num=1) They were using Nvidia 180.11 driver for the test. They ran a series of tests to see how well the video playback was offloaded to the GPU, looking at video playback of h264, mpeg, and wmv3 files … (And in all cases they noted a significant offload from cpu to gpu) … They also tested play back of h264 at a higher 1920x1080 resolution video file and also saw a significant improvement.
They summarized that noting the vdpau (with a good driver) accomplishes offloading the decoding, post-processing, compositing, and displaying compressed/uncompressed video streams on the GPU, which falls short of encoding, but I think it would still help in the application that I am considering (which is playback and non-linear-video editing of AVCHD camcorder files recorded at 1920x1080 ) .
I’m now trying to wrap my head around, how much memory should be on the nvidia video card if one wishes to take full advantage of the vdpau ?? Is 512MB RAM enough or would one see a significant advantage if one procedured a vdpau compataible nvidia graphic card that came with 1GB RAM? I’m leaning toward a nvidia 9600GT or 9800 GT card with 512 MB RAM. I’m also still targetting a PC with an Intel Core i7 cpu.
I’m still struggle wrt the hardware considerations for selecting a video graphic card, when one does not play games but rather wants the raw processing power for Non-Linear-Video editing.
When it comes to extra memory on a graphic card, I read one article on the web where a manufacturer was criticized for only offering nVidia 9800 GTX cards with a maximum of 512MB of RAM, suggesting that limits high resolution/anti-aliasing performance in certain games, and purportedly cancels out the advantage of installing the card in an SLI or triple SLI configuration (even though the card my support SLI). The critic wanted to see a 1GB card (and I note 1GB cards are available). The SLI assessment was a bit above my “head”, although from what I can see from surfing, adding multiple video cards to an SLI compatible motherboard currently offers at best a 5% improvement in rendering for Non-Linear-Video editing, and hence is expensive for only a very slight improvement. But I concede my research on this could be flat wrong.
As for high resolution/anti-aliasing, I don’t play graphic demanding video games (I only play chess with my computer, and the chess pieces don’t move that fast, even with speed chess rotfl! ), BUT it is possible high resolution/anti-aliasing is important to non-linear video editing … I have not figured that out. I may need to ask this question on a non-linear video editing application software forum (perhaps ask on the kdenlive forum).