I have some mp4 video that was generated with the FFMPEG command line on another computer. It plays the only the audio on my computer and the video is a black screen. What FFMPEG command line settings can i tell my friend to use so that the mp4 video he produces with FFMPEG will play on most Windows computers without having to install a special codec to play?
Thanks!
Bob
This is the MediaInfo text for the mp4 that gives the black screen on my computer, but I do hear the audio.
General
Complete name : F:\final_video.mp4
Format : MPEG-4
Format profile : Base Media
Codec ID : isom
File size : 449 KiB
Duration : 9s 600ms
Overall bit rate mode : Variable
Overall bit rate : 383 Kbps
Writing application : Lavf55.21.100
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High 4:4:4 Predictive@L3.0
Format settings, CABAC : Yes
Format settings, ReFrames : 4 frames
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 9s 600ms
Bit rate : 254 Kbps
Width : 500 pixels
Height : 500 pixels
Display aspect ratio : 1.000
Frame rate mode : Constant
Frame rate : 30.000 fps
Color space : YUV
Chroma subsampling : 4:4:4
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.034
Stream size : 298 KiB (66%)
Writing library : x264 core 140 r2377 1ca7bb9
Encoding settings : cabac=1 / ref=3 / deblock=1:0:0 / analyse=0x3:0x113 / me=hex / subme=7 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=1 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=4 / threads=6 / lookahead_threads=1 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=1 / b_bias=0 / direct=1 / weightb=1 / open_gop=0 / weightp=2 / keyint=250 / keyint_min=25 / scenecut=40 / intra_refresh=0 / rc_lookahead=40 / rc=crf / mbtree=1 / crf=23.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / ip_ratio=1.40 / aq=1:1.00
Audio
ID : 2
Format : AAC
Format/Info : Advanced Audio Codec
Format profile : LC
Codec ID : 40
Duration : 9s 89ms
Bit rate mode : Variable
Bit rate : 126 Kbps
Maximum bit rate : 128 Kbps
Channel(s) : 2 channels
Channel positions : Front: L R
Sampling rate : 44.1 KHz
Compression mode : Lossy
Delay relative to video : -1s 24ms
Stream size : 140 KiB (31%)
+ Reply to Thread
Results 1 to 15 of 15
-
-
I would just use something like VLC or SMPlayer that can play bascially anything. There are portable versions that don't require installation
If you want it to play on ALL windows computers, in WMP , the most common would be WMV3 video, WMA2 audio . Even windows 95 comes with support for this out of the box . Quality will be worse than what you have now, as it doesn't support 4:4:4, the chroma will be subsampled 4:2:0 . You will notice fine colored lines, text will not be as visibly distinct. Also FFMpeg can only encode WMV2 (quality is slightly worse than WMV3)
For -q:v 4, that's the quantizer level or quality level. Use a lower quantizer for higher quality, larger filesizes. Typical ranges would be around 2-6
Code:ffmpeg -i input.ext -vcodec wmv2 -q:v 4 -acodec wmav2 output.wmv
-
-
MP4 container isn't supported by older windows installs with default configuration . Only Win7 and above . Older versions require installing an MP4 splitter and probably a directshow h.264 decoder like ffdshow if you are using h264 compression
And of course WMV is problematic on many idevices, OSX without perian or 3rd party installs
There is no single format that is compatible everywhere, hence the recommendation to use a portable VLC player (eg. USB, not installed)Last edited by poisondeathray; 20th Jan 2014 at 15:38.
-
-
MPEG-1 is good codec (and MPEG PS as container) very well supported worldwide, and overall efficiency is not bad.
-
Thanks Pandy! Is this codec going to be as compressed and equal quality to mp4? Which one is it on this list? http://en.wikipedia.org/wiki/Comparison_of_container_formats
What command line would I use to produce such output using FFMPEG?
Will that output run on Android and ios phones as well as Windows and macs?
Thanks!
Bob -
MP4 is just a container (can hold different types of video compression) . You're probably really referring to h.264/AVC video compression
No, quality is much worse, compression is much worse . Don't bother
Will that output run on Android and ios phones as well as Windows and macs? -
-
You just add it to the existing commandline, the one you had in the 1st post. You should add vbv-maxrate and bufsize settings for devices
You're still going to have great difficulty obtaining complete comaptibility across all devices. That's why there are dozens of different device profiles . For example some settings that works for Android won't necessarly work on a PSP. The reason is different devices have different chips - some are stronger, support more features, others are weaker only support a few things and lower bitrates. The vbv-bufsize and maxrate can vary a lot for different devices . Some support only baseline profile (eg. early ipod & archos) , some main, some support high. Almost none support YUV444 that you had in the 1st post, or 10bit AVC
Tell me what settings you're using in handbrake, and I'll translate them for ffmpeg libx264. Or use a batch GUI that has presets for all devices, or why don't use use handbrake/vidcoder in the first place ? -
We are trying to automate the building of video dictionaries for deaf people in developing countries. Hence the need to build them with a tool that has a command line interface like FFMPEG. We need the clarity that comes with 264 compression on one hand (so the fingers can be seen clearly and file size will be small for Africa downloads) but we also would like to run on as many platforms as possible on the other hand. The largest platform base will be low end Google smart android phones or DVD players or photo picture frames that play video.
Any advice is more than welcome! -
DVD players won't be able to play h.264/AVC/MP4 , only MPEG2 and sometimes only authored as a DVD. But MPEG4-ASP (DivX/XviD) compatible DVD players will be able to play XviD AVI
Android , like most Apple devices doesn't support MPEG2 natively (but you can download additional 3rd party software players)
Newer Androids are more powerful than the models 3-4 years ago. To make it compatible with those, you need baseline profile, but you're severely handicapping the quality and compression ratio (no b-frame, no CABAC)
Handbrake has a CLI version, you should be able batch with that
For early Androids (gen 1):
Code:ffmpeg -i input.ext -pix_fmt yuv420p -vcodec libx264 -profile:v baseline -level 3.0 -crf 22 -x264opts vbv-bufsize=2500:vbv-maxrate=2500:bframes=0 -c:a libvo_aacenc -ar 44100 -ac 2 -b:a 128k -movflags faststart output.mp4
Medium Androids:
Code:ffmpeg -i input.ext -pix_fmt yuv420p -vcodec libx264 -profile:v main -level 3.0 -crf 22 -x264opts vbv-bufsize=5000:vbv-maxrate=5000 -c:a libvo_aacenc -ar 44100 -ac 2 -b:a 128k -movflags faststart output.mp4
High end Androids can play high profile @ L3.1 , HD video , higher bitrates
The lower the crf value, the higher the quality , the larger the filesize.
Also some devices/models have resolution limitations. So you may also have to resize (-s width x height in ffmpeg) and take account the AR information of the source video
Similar Threads
-
AVI created using OpenCV/FFMpeg Unreadable
By ccaltagi in forum ProgrammingReplies: 1Last Post: 20th Sep 2012, 01:09 -
cant play galaxy s2 created video in windows when file size over 2gp
By mrhawks in forum Portable VideoReplies: 6Last Post: 18th Jun 2012, 08:50 -
How to ffmpeg to convert video to play in mobile phones.
By skillednerd in forum Video ConversionReplies: 6Last Post: 7th Apr 2011, 14:24 -
Kodak Zx1 - Problem Playing MOVs Created with FFMPEG
By misnardi in forum Newbie / General discussionsReplies: 8Last Post: 6th Apr 2010, 20:50 -
Created DVD(UDF) in Nero, works on some computers, not all
By ir0n_ma1den in forum Authoring (DVD)Replies: 1Last Post: 15th Jun 2009, 21:51