Related
Any video clip I play in TCPMP and Coreplayer is choppy. The audio is fine, but the video is terrible, varying between about 4 and 0.4 fps.
Is this a known issue? Are there any settings I can tweak to get acceptable video playback quality on this device?
Wow thats bad, in TCPMP do you have the video quality set to high? Also you can increase your buffer size to help with playback. What programs are you running in the background also eating up memory? Are you storing the files on the phone or on the storage card?
TCMP wont play quarter mapped pixels so I have core player which "sort of" playes those files, I have not tweeked that one as much sicne TCPMP workes so well for most of my files but as is it will hang every few seconds for about a second.
I'm taking care to kill any programs in the background with task manager, the video files are stored on a microSD card. Video quality is set to normal. All TCPMP settings are left at their default values.
Here's the media info from TCPMP
Video: MPEG-4 Video
COodec: CoreASP
Video Size: 576x432
Frame Rate: 25.0
Audio: MP3
Codec: CoreMP3
Format 48000 hHz stereo
Data bit rate: 132 kbit/s
Played Frames: 225
Dropped: 199
Played FPS: 2.8
Okay, definately up your buffer size, mine is set to 4096 and audio preload at 512. I also uploaded the underrun buffer. When I get home I can type out all my settings, I can play resolutions around 352h x 640w and 704w x 400h(un changed files) at medium quality with only slight choppies in high speed scenes with lots going on.
You might also change the Video output mode to "Raw Frame Buffer"
It can handle really good video playback just gotta tweek it to fit your phone
I changed my settings to:
Buffer size: 4096
Audio preload: 512
underrun buffer: 85%
Video output: Raw Frame Buffer
And playback is now perfectly smooth, thanks! Are there any further tweaks I should apply?
Not many more for performance until HTC beef up the driver's. However you can go through the rest of the pages and tweek the audio, color's and such to improove how it looks.
Glad its working now though
Is anyone having problems with video playback?
WMV files they are played very slow (loosing a lot of frames). With MP4 I got best results but not the best. Any suggestions??
Thanks
WMV
I can't even get the above files to play
are you using Media Player? as video playback has always been awful on Medial Player on every pocket pc or smartphone ive everhad.
install TCPMP and video playback will be perfect, and will play any file you throw at it
http://forum.xda-developers.com/showthread.php?t=380387&highlight=tcpmp+diamond
Thanks for the tip keyz86. I'll try it.
no problem, glad to help a fellow Dimondarian
won't play
loaded the TCPMP but everytime I try and start it i get the attached error, using diamond help
keyz86 said:
no problem, glad to help a fellow Dimondarian
Click to expand...
Click to collapse
Dimondarian Cool hehehe
Has anyone been able to play a full resolution file without skipping?
I am using CorePlayer now but if another player works better, please say so.
With Coreplayer I benchmark about 85%, which is not good enough.
I believe the Diamond should be able to get 100%.
I found that an encoded mp4 file would play about the same as the original avi xvid file...
What do you use to encode videos specifically for the Diamond?
Come on!! Post your results!
tretre said:
What do you use to encode videos specifically for the Diamond?
Come on!! Post your results!
Click to expand...
Click to collapse
What video settings do you use with coreplayer ?
DirectDraw, GDI or what ?
This is what i get:
With these configs.:
But with some other videos i have i get only 88% speed and some frame drops and tearing.
Doesnt the Diamond has a good video hardware.
Imo, it shouldnt lag at all.
Ive read somewhere that it doesnt use the hardware correctly since the drivers were not fully implemented. Not sure if its true.
Still looking for a good solution... any more help?
Coreplayer is still choppy ...
Yeah, I wasn't able to get WMVs to play using this, either.
I think what we need to have a look at is which encoding, resolution, bitrate, fps, etc are optimal for the diamond using core player.
I'm experimenting a bit. Will report back in a bit...
I've just got my Ignito (diamond) a couple of days ago, but I've got a long history of video playback on hand helds. Since this is my first time post, and I happen to have a bit of time on my hands.... I'm going to convert a file into a series of different resolutions and settings to see which one will perform the best. I know the objective is to get a full res one to play, but I'll see what I can come up with.
Also, I'm using the default ROM at this time.
With Coreplayer you should use the 'QTv' display option - this is hardware accelerated and beats 100% benchmark on every AVI I have tried. If you get a blank display using this mode, you are using an old version and need to update.
Alright. After trying a bunch of different codecs, encoders, video and audio formats at various resolutions I came the conclusion that for now, full resolution video is just not possible without jerky movements during continuous motion or fast action scenes.
My eyes are very sensitive and I get really irritated if playback is not perfectly smooth.
So far what works the best in achieving this kind of natural playback is AVI as the output container with XviD video codec at 480 x 360 resolution, and mp3 audio. I set the video and audio bitrates to match whatever the source video was (min 864 kbps and max 1008 kbps for video and 192 kbps for audio).
Even then, CorePlayer is a must with the following settigns: QTv On, TytnII driver mode On and Smooth Zoom On.
Every now and again CorePlayer will show only a purple screen during playback when QTv mode on. At that point I usually do a soft reset and it starts working again.
This issue may be resolved with an upcoming release of CorePlayer (1.3) but until then, the solution above works exceptionally well.
I'd be very interested in anyone else is having success in other ways...
320 by 240 versus 640 by 480
I have done some playing with conversion and have found that the Diamond (currently) does not support the 640 by 480 settings with a good bitrate. The BEST conversion I have found (using Coreplayer to play back the files) is using the BETA Version of the Pocket Divx Encoder (http://www.pocketdivxencoder.net/EN_index.htm) and using the HTC Diamond Template (NON VGA!!!!, there is a VGA and non VGA) that team has developed. They have done an excellent job!
The output settings -
Dimensions 320 by 240
Video Quaility - "36" ... 584 kb bitrate
Hopefully an update by HTC or coreplayer will be released to fully utilize the resolution that the Diamond SHOULD be able to support, but for a clear, non jerky playback, this is my 2 cents
im able to play those axxo dvdripson using coreplayer without any sort of convertion....
I want to share my experience. I am using core player and trying to recode unprotected high-definition TV shows (original resolution of 1920x1080) that I've recorded on Windows Media Center (.dvr-ms files) to watch on my Sprint Diamond. Unfortunately .dvr-ms are poorly supported, and the only program I've found to recode is TMPGEnc 4.0 Xpress.
I am using Core Player version 1.2.5 build 4506, and my video output is QTv Display with the Tytn II driver mode enabled.
Like everyone else here, I have had horrible results when converting the shows to DivX at 640x360 at any usuable bitrate (above 500 kbps). Benchmarking in Core Player yielded a playback speed of 66% or so (completely unacceptable, obviously). So I played around with the resolution and bitrate, and finally settled on the following:
Format: DivX
resolution: 512x288 (maintains the 16:9 aspect ratio of the original)
Video bitrate: 850 kbps
Frame rate: 29.97 fps (progressive)
Audio: MP3
Audio bitrate: 80 kbps, 48kHz sample rate
With those settings, I have a 104% playback benchmark with around 25 dropped frames compared to several thousand played, and about 29.5 fps. Basically, it is completely smooth audio and video.
I was still PO'd that I had to sacrifice so much resolution and bitrate on a supposed media device, so I played around with other formats. WMV was awful. MPEG-2 was awful, and avi was passable, but no better than DivX. I also decided to try h.264 (MPEG-4 AVC). Here are the settings I used:
Video Format: MPEG-4 AVC (saves as .mp4)
Resolution: 640x360 (still maintaining the original 16:9 AR)
Video bitrate: 1000 kbps
frame rate: 29.97 fps (progressive)
Audio format: AAC
Audio bitrate: 96 kbps, 48kHz sample rate
Core Player absolutely choked on this. It was unwatchable, and the benchmark revealed a playback speed of 50%. Dropped frames were higher than played frames (!) and framerate was 13 fps. Obviously not successful.
But, before I deleted the file, on a whim I decided to try Windows Media Player and...it was completely FLAWLESS playback. Absolutely beautiful, smooth motion, no audio stuttering, slow and fast pans were the best I've ever seen on a WM device.
Why??? Is there something I'm missing about this that someone can elaborate on? Is this the fabled "hardware acceleration" that I've read so much about? I should note that WMP had a hard time on a 320x240 .wmv file, so I can't really understand how it is able to play a 640x360 .mp4 file so smoothly. In any event, I have found my perfect file format, and, surprisingly, it doesn't involve Core Player in any way.
-R
The thing is that HTC didn't release any kind of SDK for Diamond or Touch Pro and companies like CoreCodec have hard time trying to figure out how to use the HW acceleration but they are trying very hard to improve the situation so maybe with time they will be able to use the HW for now the only way we wan't to watch videos with HW acceleration is only WMP which means recoding or atleast remuxing files.
Cheers
P.S. Could you post exact specs of the .mp4 file? What kind of AVC it was and things like that.
in regards to the WMP hardware acceleration.
is it better on battery life than having coreplayer trying its hard out to render a video. even if its a small 320x vid that plays at 120%. Does that mean that the cpu is running near max?
Hey, I'm not getting my TD2 before mid-June, but I'd like to encode some videos beforehand. Since I don't have a device to test them on I'd really appreciate if someone could download this clip and test it on your phone.
Video is h.264 and audio is AAC. I heard only WMP supports hardware acceleration, but if you have Coreplayer also I'd like to hear some results from there as well. Video bitrate is only 750 kbit/s, as I wasn't sure how high a bitrate the TD2 could handle. For some reason the motion isn't completely smooth the first 10 seconds or so, but never mind that.
The file:
http://rapidshare.com/files/238242088/750.zip.html
There is a 10 download limit on rapidshare, so I'd appreciate it if only people that intend to help me downloads it
edit: I know there is an "HTC Touch HD encoder"-program, but it produces absolutely horrible video quality at the same bitrates
I saw it on my D2, and I have to say it didn`t go so smooth as I expected.
When there is a lot of action on the screen the phone can`t keep up with the video. I presume the quality is to high for the phone.
DjangoBE said:
I saw it on my D2, and I have to say it didn`t go so smooth as I expected.
When there is a lot of action on the screen the phone can`t keep up with the video. I presume the quality is to high for the phone.
Click to expand...
Click to collapse
Okay, thanks
Guess I'll have to wait until I get my phone then so I can tweak the encoding settings :/
hi i have the same question about video play
here is the same video from rapidshare for more than 10 times
http://rapidshare.com/files/238483911/750.zip
i use coreplayer 1.3.2 on my TYTN II (Kaiser)
i do a bechmark on this video and i take this score...
avarege Speed: 28.17%
Video franes 1482
Audio samples 1484800
bench time: 3.39.434
bench frame rate: 6.754
bench sample rate: 6766
bench data rate: 247 kbit/s
original time 1.01.812
original frame rate: 23.976
original sample rate: 24000
original data rate: 877 kbit/s
tell me what device is yours
ps. test take place with QTv Display
ps. quality: HIGH
smooth zoom: only for 50%
I tried it and it just showed a solid green colour for the entire video. I guess I don't have the right codec or something. I don't have CorePlayer though.
I had the same green screen using the htc default .mp4 player on my TD2, but the file did play with The Core Player....the video stuttered quite badly in places and the audio went out of sync..I transcoded a movie using Touch HD Video converter see thread:
http://forum.xda-developers.com/showthread.php?t=467112
This movie runs very well on the default player with no stutter or sync problems.
Video properties:
video
codec:avc1
resolution: 640 x 352
frame rate: 23.976023
audio
codec: mp4a
sample rate:44100Hz
Bits per sample: 16
Bitrate: 1411kb/s
tonyh0905 said:
I had the same green screen using the htc default .mp4 player on my TD2, but the file did play with The Core Player....the video stuttered quite badly in places and the audio went out of sync..I transcoded a movie using Touch HD Video converter see thread:
http://forum.xda-developers.com/showthread.php?t=467112
This movie runs very well on the default player with no stutter or sync problems.
Video properties:
video
codec:avc1
resolution: 640 x 352
frame rate: 23.976023
audio
codec: mp4a
sample rate:44100Hz
Bits per sample: 16
Bitrate: 1411kb/s
Click to expand...
Click to collapse
must be test it with coreplayer to have a compare from 2 device
touch pro 2 have 35% score on this bechmark
After a lot of experimenting I've settled on Mediacoder as encoder: free, fast, from everything to everything. The only big disadventage is that it isn't very easy to use (altough the Web UI is ok).
These are the settings I use. I've chosen them because they produce the smallest file/quality compromise while retaining smooth plaback. Also you don't need a special player to view it, WM/the HTC player can do it (altough that might only be since the diamond2 since I use gen.Y's D2 rom)
Container: MP4
Video codec: H.264 (x.264 encoder)
Bitrate: 256 Kbps 2-Pass (target bitrate/average bitrate will produce same sized file faster altough with bit less video quality, since I usually only transcode short music clips etc. and have a fast computer I use 2-pass, but if you want to encode 6 hours of movies you might want to select average bitrate)
Resolution: 640x480
Profile: Baseline - Level 3.0
Audio codec: AAC (Nero encoder)
Bitrate: 96 Kbps
Profile: LC-AAC (make sure you use this, most players can't play HE-AAC yet, e.g. Apple can only do it since iTunes v9, iPhone OS 3.1 and the iPods of fall 2009)
As I said: smooth playback, small filesize and good quality...
Sometimes I have a file which doesn't play really smooth, but lowering the bitrate to 200 Kbps usually fixes that. That is also usually the bitrate I choose for video if I have a really large file and/or want to be sure the file (e.g. film) plays smooth. In my experience lowering the resolution helps a bit on smooth playback, but doesn't really help much. The only reason I use a lower resolution is because I like [email protected] Kbps better than [email protected] Kbps (200 Kbps differs a bit from case to case). Remember: the bitrate gets "divided" over all the pixels so more pixels => less bits per pixel. The only reason to use a higher resolution is because it's sharper but you don't usually see that on such a small screen and low bitrate.
Another thing: I really recommend using x.264 as an encoder rather than the nVidia CUDA encoder. Altough it is waaay faster it also produces worse quality results, especially at low bitrates. So if you have the time: use x.264. If you have the power and space: use the CUDA H.264 encoder.
What do you use?
try handbrake... its free
Pacman15 said:
try handbrake... its free
Click to expand...
Click to collapse
Well, that doesn't sound very good to me...
AVI: AVI is a rough beast. It is obsolete. It does not support modern container features like chapters, muxed-in subtitles, variable framerate video, or out of order frame display. Furthermore, HandBrake's AVI muxer is vanilla AVI 1.0 that doesn't even support large files. The code has not been actively maintained since 2005. Keeping it in the library while implementing new features means a very convoluted data pipeline, full of conditionals that make the code more difficult to read and maintain, and make output harder to predict. As such, it is now gone. It is not coming back, and good riddance.
OGG/OGM: HandBrake's OGM muxer is just as out of date. It hasn't been actively maintained in years either, and it too lacks support for HandBrake's best features. ... This one is not coming back either. ...
XviD: HandBrake, these days, is almost entirely about H.264 video,... Meanwhile, XviD's build system causes grief...
Click to expand...
Click to collapse
Ok, avi I can understand. Anyone who combines AVI with H.264 is just being stupid. But OGM? Xvid? Sound to me more like: we were to lazy to update our requirements and now they're out of date and awfull so we're just removing them...
Removing Vorbis and Xvid from your encoder... Whut?
What are the best settings to use in Handbrake for the Nexus 7?
I want to encode movies while keeping good quality but as the device has limited space I dont want to store any information that the device cant show.
Thanks,
Mento
I'm still a rookie on the forum so I can't post links, but do a Google search for "android video compatibility" and you will see the stock android video capabilities in the first link, address starts with "developer.android."
You'll see that it basically can handle good hi def in the form of mp4 and mkv. That being said, you can use less space by using avi files that are marginally smaller, but you will need a media player app like MX player, there are plenty of free ones that can get the hardware involved in the processing so you get great video.
Hope this helps.
Sent from my Nexus 7 using XDA Premium HD app
I've been looking for the same information since the Nexus 7 was released. I haven't been able to find a good resource that says what options in the H.264 spec are supported. However, I was able to play back some movies which I encoded for an iPod Touch using Handbrake. These videos were encoded basically using the iPhone profile with some minor changes. So, H.264, high-profile, using b-frames (I think 3).
I've been using DicePlayer, mostly because I couldn't get stable playback using MxPlayer or the stock player on my Touchpad. It seems like the Nexus 7 stock player is capable of playing those files back, but I still use Dice.
There are two presets in Handbrake under Devices, Android Mid and Android High.
ffmpeg settings
It's a shame there's no standard. Each Android device supports different features. Using ffmpeg If you want maximum compatibility you have to encode with baseline slow. However, the Nexus 7 seems to have excellent H.264 support.
Here's what I've successfully used to downconvert 1920x1080i video - it does crop the edges a bit but I think it's probably within the overscan area anyway. (Yeah, I know, LCDs don't actually have overscan.)
High quality, remove a logo, 24fps 'film' source :
ffmpeg -y -i <INPUTVIDEONAME> -r 24000/1001 -crf 20 -filter:v yadif,removelogo=<LOGOFILENAME>,scale=-1:800,crop=1280:800 -sws_flags spline -preset placebo -profile:v high -aq 90 -ac 2 <OUTPUTVIDEONAME>.mp4
Lower quality (crf=20 vs 30), no logo removal:
ffmpeg -y -i <INPUTVIDEONAME> -r 24000/1001 -crf 30 -filter:v yadif,scale=-1:800,crop=1280:800 -sws_flags spline -preset placebo -profile:v high -aq 90 -ac 2 <OUTPUTVIDEONAME>.mp4
Lower quality, 29.97fps video source:
ffmpeg -y -i <INPUTVIDEONAME> -r 30000/1001 -crf 30 -filter:v yadif,scale=-1:800,crop=1280:800 -sws_flags spline -preset placebo -profile:v high -aq 90 -ac 2 <OUTPUTVIDEONAME>.mp4
This works with CURRENT builds of ffmpeg as of this post. Earlier releases may not work.
Best bet is just choose the iPhone 4 preset and up the width to 1280 (depending on what you're encoding). If the source material is < 1280 pixels wide (SD content, etc) then just accept the default resolution the preset chooses (DVD content will play back at the correct aspect ratio). If the source material is = or > 1280 pixels wide, the preset will default to 960 pixels - change that to 1280 (for > 1280 wide) and it'll look fantastic.
Most likely you'll need to drop the audio down to simple 2-channel stereo, the recommendation is to use the AAC ffmpeg encoder at 160 Kbps or 128 Kbps if you want to save a few bytes (the size difference between a 128 Kbps and 160 Kbps audio stream will be fairly minimal; the 160 Kbps will offer better response so might as well just use that).
Or, if the material you want to encode already has AAC audio streams, just pass the audio through - that saves HandBrake the time and trouble of re-encoding already lossy audio and you end up with the exact audio stream taken from the source material but this only works if the source material HAS an AAC audio stream to begin with. There's an option to pass-thru MP3 audio streams as well.
Since the Nexus 7 isn't really designed to provide AC3/DTS capability for audio (5.1 or 7.1 soundtracks), there's no reason to encode or pass-thru such huge streams: encode it down to 128 or 160 Kbps AAC 2-channel stereo audio streams with the ffmpeg encoder.
MP4 or M4V is fine for the extension, either one will allow embedded captions/subtitles, or use MKV, doesn't really matter.
And the recommended media player for the Nexus 7 (at least my recommendation) is MX Player, there's nothing that can touch it.
These tips should get you some great looking videos. You can even make some minor adjustments like increasing the Reference frames to 5 and get slightly smaller video files in the long run as well.
But the basic iPhone 4 preset and adjusting the resolution to 1280 wide will give great results - you can of course just leave the resolution at the default of 960 pixels wide and it'll upscale beautifully on the Nexus 7 and you'll save a big chunk of space on the resulting encodes, like 25-35% in the end file size.
Hope this helps...
NOTE: HandBrake just updated again the other day, they're at 0.9.8 now so, if you're using an older build, it's a good idea to update to the most current one (the 0.9.7 release had some bugs they quashed pretty fast).
br0adband said:
Best bet is just choose the iPhone 4 preset and up the width to 1280 (depending on what you're encoding). If the source material is < 1280 pixels wide (SD content, etc) then just accept the default resolution the preset chooses (DVD content will play back at the correct aspect ratio). If the source material is = or > 1280 pixels wide, the preset will default to 960 pixels - change that to 1280 (for > 1280 wide) and it'll look fantastic.
Click to expand...
Click to collapse
Let me just add one general warning. The iPhone 4 preset, along with the Android-high profile, use b-frames and other optional features in the H.264 that aren't necessarily supported on all Android devices. The Nexus 7 appears to deal with them fine, but as a general rule the iPhone 4 preset is not going to work on all Android devices.
Correct, and I was about to launch a very long post earlier but decided it's not worth the time or trouble.
Android devices with high resolution screens and made in the last ~18 months or so can handle the iPhone 4 preset without issues. My alteration to the preset is to increase the overall compression (using 5 Reference frames instead of the default 3 for the iPhone 4 preset) and also to adjust the Adaptive B-Frames to Optimal, that's about it on the Advanced tab.
I don't use the Android High preset because it requires me to alter more of the possible options than the iPhone 4 preset does (easier to adjust 2-3 options than 12).
Rest assured, the quad core Nexus 7 with the latest hardware decoder can handle any x264/h.264 options at this point in time.
This thread and this subforum ain't about all Android devices, it's about the Nexus 7 and everything posted so far is relevant to that device.
br0adband said:
Correct, and I was about to launch a very long post earlier but decided it's not worth the time or trouble.
Android devices with high resolution screens and made in the last ~18 months or so can handle the iPhone 4 preset without issues. My alteration to the preset is to increase the overall compression (using 5 Reference frames instead of the default 3 for the iPhone 4 preset) and also to adjust the Adaptive B-Frames to Optimal, that's about it on the Advanced tab.
I don't use the Android High preset because it requires me to alter more of the possible options than the iPhone 4 preset does (easier to adjust 2-3 options than 12).
Rest assured, the quad core Nexus 7 with the latest hardware decoder can handle any x264/h.264 options at this point in time.
This thread and this subforum ain't about all Android devices, it's about the Nexus 7 and everything posted so far is relevant to that device.
Click to expand...
Click to collapse
Tegra 3 doesn't like hi10p.
Hi10p only proves beneficial for one specific thing: anime or cartoon-type video content, and in the big picture it's pretty much irrelevant. It has a small community behind it - again, specifically anime fans - and that's fine but, in reality it's not a big enough "draw" (no pun intended) to bother with.
8-bit encoding with x264 looks just fine on the Nexus 7 and has no issues at all.
As side from the benefits in anime, the file size savings is really nice.
Handbrake
Regular Normal profile
H.264 for video
1000 Video Bitrate kbps (If you're starting with HD this bitrate is sufficient. about a gig per 2 hour movie)
Audio AAC (faac)
Gain 10
DRC 2.0
You can either setup handbrake to name it an mp4 instead of m4v or manually rename it to mp4.
You will be able to play with stock player.
I have never bothered to encode video files since I always owned devices that support mSD. But ever since I recieved this Nexus 7 as a gift ( HATE the no msd slot!!!!!) I thought it'd be a good idea to start encoding video files. I used handbrake (latest version), converted a 720p 1 hour game of thrones tv show episode, and I'm not impressed! I changed the resolution to 960X720, bit rate 1000, AAC FAAC stereo 128, Refrence Frame 5, Adaptive B-frame optimal, and all I ended up with was a 10mb difference in size (442mb to 433mb)
Hemidroids said:
Handbrake
Regular Normal profile
H.264 for video
1000 Video Bitrate kbps (If you're starting with HD this bitrate is sufficient. about a gig per 2 hour movie)
Audio AAC (faac)
Gain 10
DRC 2.0
You can either setup handbrake to name it an mp4 instead of m4v or manually rename it to mp4.
You will be able to play with stock player.
Click to expand...
Click to collapse
Pretty much this, though I recommend changing horizontal pixels to 1280 and scale vertical accordingly. You can even scale down video bit rate on this device decently (if you're tight on space) because the high dpi helps hide compression artifacts.
Sent from my paranoid Nexus 7.
zolo111 said:
I have never bothered to encode video files since I always owned devices that support mSD. But ever since I recieved this Nexus 7 as a gift ( HATE the no msd slot!!!!!) I thought it'd be a good idea to start encoding video files. I used handbrake (latest version), converted a 720p 1 hour game of thrones tv show episode, and I'm not impressed! I changed the resolution to 960X720, bit rate 1000, AAC FAAC stereo 128, Refrence Frame 5, Adaptive B-frame optimal, and all I ended up with was a 10mb difference in size (442mb to 433mb)
Click to expand...
Click to collapse
The original file was probably already H.264 video.
Primary reasons to encode/transcode:
1) Reduce bitrate and resolution of 1080p Blu-Ray content
2) Change format of source files encoded in a way the device doesn't like
3) Use a more efficient codec than the source format while preserving the resolution (DVD encodes - H.264 is vastly superior to MPEG-2 so achieves major size reductions. Typically a 4.7GB DVD can be reduced to around 1GB of AVC+AAC at very high quality settings.)
On many devices, H.264 had better hardware acceleration than MPEG-4 ASP (aka DivX/Xvid) and most Android devices have far better support for the MPEG-4 container format than AVI - so it would be beneficial to transcode torrents that were ASP+MP3 AVIs.
However, many HD torrents are now AVC+AC3 MKVs. AC3 can be a problem, so can MKV, so usually when I do these transcodes I just transcode the audio using ffmpeg. Something like:
Code:
ffmpeg -i <infile.mkv> -acodec libfaac -ab 160k -ac 2 -vcodec copy <outfile.mp4>
Replaces AC-3 surround audio with 2-channel 160 kilobit AAC audio, and remuxes into an MPEG-4 stream.
Traditionally, 1 hour torrent releases were 700MB (1 CD) ASP+MP3 in an AVI container - However the scene seems to be moving from constant-size AVI encoding to constant-quality H.264+AAC MPEG-4 releases for standard definition content. 443MB for 1 hour sounds like one of these releases, which likely don't need any transcoding at all.
>ffmpeg -i <infile.mkv> -acodec libfaac -ab 160k -ac 2 -vcodec copy <outfile.mp4>
Has ffmpeg updated its AAC codec to be anything decent? I'm still using NeroAACenc.
Another ffmpeg issue is that last I checked (a year ago), it can mangle channel mapping for 5.1 audio, assuming you want 6ch AAC rather than stereo. I use ffmpeg for (some) demux, and straight x264 for video. There are better audio enc tools.
MPEG4-ASP isn't relevant any more, except to the few still stuck on obsolete playback hardware.
>the scene seems to be moving from constant-size AVI encoding to constant-quality H.264+AAC MPEG-4 releases for standard definition content.
I don't see that. Yes, peeps are moving to smaller-sized AVC encodes, but they're all still using 2-pass/fixed bitrate rather than 1-pass/fixed CRF.
BTW, for those with Win32 box and are interested in recoding/shrinking their vids, do try my x264 script below. Its forte is commandline efficiency with menu simplicity. It uses one-pass constant quality (CRF). You can vary the CRF.
http://forum.xda-developers.com/showthread.php?t=1102922
---------- Post added at 05:01 PM ---------- Previous post was at 04:35 PM ----------
>I used handbrake (latest version), converted a 720p 1 hour game of thrones tv show episode, and I'm not impressed! I changed the resolution to 960X720, bit rate 1000, AAC FAAC stereo 128, Refrence Frame 5, Adaptive B-frame optimal, and all I ended up with was a 10mb difference in size (442mb to 433mb)
The 720p 1-hr vid is already using a low bitrate to achieve the 442MB size. By using an arbitrary bitrate--why 1000, because it's an even number?--you're both increasing the bitrate and decreasing the quality, by re-encoding it again and at lower resolution.
BTW, most HDTV vids are 16:9, which at 960 is 960x540.
Videos can have wildly varying bitrate requirements, so it's advisable to use constant quality, and let the encoder determine the bitrate. HB uses a default of CRF 20, which is overly generous. Low-bitrate encodes such as the above has a CRF-equivalent of 24-27 (higher CRF = softer detail = lower bitrate), so don't bother recoding those. For biggies, suggest the x264 default of CRF 23 to start out.
AAC codec: Might be why if you use -acodec aac you get all sorts of warnings that you should really use libfaac instead - seems fine to me. That said my ears aren't particularly picky. NeroAACenc isn't really an option for me on a Linux box, and the above works fine for my use case.
Channel mapping: It seems to be downmixing fine, and as you see in my example, I told it to downmix to two channels. I haven't tested this in thorough detail, I need to find a good example of something with only rear channel audio to make sure the rear channels are getting mixed in. I don't encode to more than stereo AAC as I have nothing at all that can do anything useful with surround AAC - And there is no point in sending surround AAC to a Nexus 7 currently.
The "scene" using CBR 2-pass - I don't think they are any more for some newer releases - I'm seeing too much file size variance. It's not like the old days where files would be exactly 350MB or 700MB within a few kilobytes - I'm seeing up to 100MB of variation or more between releases even of the same show from the same group. That kinda screams CRF to me. Note that this is primarily TV shows from eztv - the movie "scene" may still be doing it oldskool.
Edit: Also, I find it highly unlikely that the person above actually had a 720p 1-hour episode. I've never seen a 720p TV release that small. Typically if it's around 440MB for a one hour video, that's a sign that it's a standard definition release.
NeroAACEnc is available for linux: ftp://ftp6.nero.com/tools/NeroDigitalAudio.zip
Re: Channel mapping - Yes, downmix works fine. The problem occurs when encoding to 6ch AAC, since AAC and AC3 (and DTS) all use different channel mapping, and ffmpeg doesn't remap them properly. You can try encoding the 5.1 AC3 test clip attached below. Each channel is verbalized out loud so you will know if it's correctly mapped.
Yes, it doesn't normally matter for tablets. But it would if you plug said tablet into a HDTV w/ hi-fi setup. OK, not the N7.
>The "scene" using CBR 2-pass
Admittedly I don't watch many vids nowaday, so you may be right. I usually do a mediainfo scan on stuff I watch to check their encoding params, and all the vids I see use 2-pass.
>unlikely that the person above actually had a 720p 1-hour episode. I've never seen a 720p TV release that small.
I've seen the Avengers 720p at 1.2GB, which is really low BR considering it's 2:22min long with lots of action scenes. Even at CRF 23 and just stereo AAC, my own 720p rip comes out to 1.8GB. It's typical for noobs to aim for a small fixed size and yet keeping the res high.
The result looks poor at close examination, but for casual viewing, it's actually fairly passable. At really low bitrates, the details are just softer rather than being pixellated as with ASP. For fast-motion scenes, it's hard to discern the detail loss. It's a testament to x264 encode quality.
Thanks Entropy512. You're right, I thought it'd be possible to further reduce the size since I wouldn't notice the picture quality difference on the 7" screen while I reduce the size by 20-25%. The scene already release a fantastic copy, size wise.
anyone had any luck encoding a video at 1080p 60fps for the nexus 7, and in that case what codecs/settings?