- Video — 720p to 480p с учетом SAR/DAR
- Software for converting mp4 files from 720p to 480p
- 5 Answers 5
- For Audio
- Thread: Help needed converting 720p video to 480p
- Help needed converting 720p video to 480p
- Re: Help needed converting 720p video to 480p
- Re: Help needed converting 720p video to 480p
- Re: Help needed converting 720p video to 480p
- Re: Help needed converting 720p video to 480p
Video — 720p to 480p с учетом SAR/DAR
Чем консольным пожать видео с 720p to 480p/240p с учетом SAR/DAR. Еще интересует формула расчета ширины для 480p/240p с учетом SAR/DAR.
Если есть пример как — буду благодарен.
ffmpeg -i [путь к исходнику] -vf scale=-1:720 -c:a copy [путь к энкоду]
Что то не выходит c использованием -vf scale= К примеру есть файл 720p:
Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 2497 kb/s, 29.97 fps, 29.97 tbr, 11988 tbn, 59.94 tbc (default)
Мне из него нужно сделать 480p
ffmpeg -i over50-03-01-a-720p-hd-2500.mp4 -vf scale=-1:480 -c:a copy out.mp4
[libx264 @ 0x40db8c0] width not divisible by 2 (853x480) Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height
[libx264 @ 0x40db8c0] width not divisible by 2 (853×480)
Почему я сразу и просил формулу расчета ширины для 480p/240p.
852 — это из расчета [SAR 1:1 DAR 16:9]
Почему я сразу и просил формулу расчета ширины для 480p/240p.
scale=vga //480p
scale=qvga //240p
Например
Для 480p scale=vga:force_original_aspect_ratio=decrease
Для 240p scale=qvga:force_original_aspect_ratio=decrease
Для 240p scale=qvga:force_original_aspect_ratio=decrease
он делает видео размером 320×180
По-другому:
Для 480p scale=852×480:force_original_aspect_ratio=decrease
Для 240p scale=426:240:force_original_aspect_ratio=decrease
[libx264 @ 0x44af880] height not divisible by 2 (852×479)
[libx264 @ 0x44af880] height not divisible by 2 (852×479)
И где же крутые ТЫЖПРОГРАММИСТЫ?
[libx264 @ 0x4256880] width not divisible by 2 (853×480) И она не правильно считает.
Можешь простыми словами объяснить что такое SAR. Что такое DAR я знаю а SAR что то не могу понять.
Можешь простыми словами объяснить что такое SAR
Соотношение сторон видео, 16:9 например
16:9 — это DAR. [SAR 117:116 DAR 16:9] А вот что такое SAR мне пока не понятно.
DAR может быть и 4:3 при SAR 16:9. DAR при этом растянет 16:9 до 4:3
-vf scale=-1:480
[libx264 @ 0x40db8c0] width not divisible by 2 (853×480)
Сейчас «маэстро» позову)) Он тебе мигом все по полочкам разложит Lordwind
Был бы благодарен так как решение пока НЕ нашел.
Последний раз я жал handbrake’ом.
Как получить кратное 2 число из нектарного в параметре для ffmpeg — это то, что нужно автору, а я не ТЫЖПРОГРАММИСТ, ясное дело, можно вычесть единицу, но ему нужна
формула расчета ширины для 480p/240p с учетом SAR/DAR.
Так что, там может быть и 4:3 видео, которое прекрасно разделится на 2, а после -1 мы опять получим ошибку (уже не говоря об испорченном видео)
Значит это нужно как-то проверить
Не думаю, что это делается хотя бы без скрипта
а после -1 мы опять получим ошибку
Не думаю, что это делается хотя бы без скрипта
Допустим есть 4:3 видео 1280×960, 960/480 = 2, 1280/2=640, то есть число, кратное двум, а если мы отнимем один?
Я конечно не программист, но попробуй:
scale=w=’if(gcd(iw/(ih/480), 2)-1, w=iw/(ih/480), w=iw/(ih/480)-1):h=480′
scale=w=’if(gcd(iw/(ih/480), 2)-1, iw/(ih/480), iw/(ih/480)-1):h=480′
[Parsed_scale_0 @ 0x40dc620] Invalid size ‘if(gcd(iw/(ih/480)’ [AVFilterGraph @ 0x40dcfc0] Error initializing filter ‘scale’ with args ‘w=if(gcd(iw/(ih/480):flags=bicubic’
scale=w=’if(gcd(iw/(ih/480), 2)-1, iw/(ih/480), iw/(ih/480)-1)’:h=480
[Parsed_scale_0 @ 0x5c9a620] Invalid size ‘if(gcd(iw/(ih/480)’ [AVFilterGraph @ 0x5c9afc0] Error initializing filter ‘scale’ with args ‘w=if(gcd(iw/(ih/480):flags=bicubic’
DAR = W/H * SAR , где W и H — количество пикселов в ширину и в высоту соответственно.
SAR — sample aspect ratio, тоже самое что и pixel aspect ratio (PAR), DAR — display aspect ratio или соотношение сторон итоговой картинки.
Эта формула тебе будет нужна только если ты соберёшься вручную менять SAR. Если ты его менять не собираешься, то считай новую ширину в пикселах как W_new = W_old * H_new/H_old . В случае масштабирования или кропа ffmpeg сам пересчитывает SAR и DAR.
Учти, что для кодеков часто нужно кратное 2 или 4 количество пикселов, поэтому из результата вычисления нужно вычесть остаток от деления результата на 2 или на 4. Ну или прибавить остаток, в случае деления на 2, или прибавить разницу 4 и остатка в случае деления на 4. Лол.
Допустим, у тебя видео 1024×720 с SAR 1.25, то есть DAR = 16:9, и тебе надо сжать его до 410 пикселов по вертикали. Новая ширина в пикселах будет W_new = 1024 * 410/720 ~= 583. Так кодеки h264 и h265 (hevc) не умеют в нечётное количество пикселов, то примем новую ширину равной 582 или 584.
Теперь, если перекодировать такой командой:
ffmpeg -i old.mp4 -vf scale=582:410 -c:v h264 -c:a copy -crf 20 new.mp4
то можно увидеть, что ffmpeg сохраняет DAR, изменяя при этом SAR. Если ты-таки хочешь изменить SAR *или* DAR, то используй фильтр setsar или setdar:
ffmpeg -i old.mp4 -vf scale=582:410,setsar=1:1 -c:v hevc -c:a copy -crf 20 new.mp4
Software for converting mp4 files from 720p to 480p
I have some videos I want to convert into 480p since my netbook can’t handle 720p videos and higher. Do you guys know any free software that can do so? Thanks!
ffmpeg, handbrake, openshot, you have a long list of options. ffmpeg has a bit of a learning curve, but more options.
5 Answers 5
the best software for your usage willl be Handbrake. It is a very advanced software with lots of options for you to choose.
As shown in image you can set any value of width or height of video, in your case height=480p
Installation
download deb from here. (easy way to go, but you wont get updates)
or go by PPA ( for Ubuntu 14.10 and previous versions; no ppa available for ubuntu 15.04) from here ( you need to select the Ubuntu version to get ppa). After this, run either of these:
apt-get install handbrake-gtk
apt-get install handbrake-cli
Thanks for this! I tried Avidemux and although it did reduce it to 480p, the audio was messed up and the video was sort of stuttering/broken. Would it have the same result with Handbrake? I mean, won’t re-sizing the video using Handbrake mess up the audio as well?
Certainly under Xenial Xerus you have access to a quite reasonable copy of FFmpeg so the resize can be handled easily with FFmpeg from the command line.
Definitions:
First some definitions to solve the endless confusion over terminology:
- 720p: Has a vertical resolution of 720 pixels, horizontal resolution usually of 1280px. Aspect ratio is most usually 16:9. The ‘p’ simply stands for progressive scan, i.e. non-interlaced.
- 480p: Has a vertical resolution of 480 pixels, horizontal resolution usually of 640 pixels. Aspect ratio is most usually 4:3. Again the ‘p’ stands for progressive scan, i.e. non-interlaced.
Required Software:
The great news is that FFmpeg will do the calculations for the horizontal resolution for you as well as maintaining the required aspect ratio, it is only required for you to give the desired vertical resolution. So first install FFmpeg:
sudo apt-get install ffmpeg libavcodec-extra
The libavcodec-extra package will install some often-needed extra codecs for FFmpeg.
The ‘Resize’ Syntax:
The basic syntax to resize your video is as follows:
ffmpeg -i input -vf scale=-1:480 output
The scale filter uses width:height and you can see in my example that I have specified a height (vertical resolution) of 480 while the ‘-1’ tells FFmpeg to resize the width (horizontal resolution) as necessary to maintain the existing aspect ratio. Pretty cool :).
A Full Example:
Bear in mind that you will need to also re-encode when you are resizing and your selected settings will depend very much on your source material. To give an example:
For this use the following command line:
ffmpeg -i input.mp4 \ -vf scale=-2:480 -c:v libx264 -preset slow -crf 22 \ -c:a copy output.mp4
Note that I have specified -2:480 for width and height, this allows FFmpeg to calculate a number for width that is divisible by 2 which will give more efficient encoding.
There is a great deal more to scaling with FFmpeg, I have included a reference at the base if you wish to dig a little deeper.
In the above screenshot we can see a queue of videos (one in this example) to be processed with the same customised properties which includes transcoding for one or more of the next:
For Audio
Of course you will be in need to add (on your own) the proper codecs for which you wish transcoding your video files so that they will become available in the «Video Codec» Drop Down.
But please have in consideration that the most of the times it is not just about changing the video dimensions but the bitrate itself. I would suggest you to do some transcoding with small portions of video (just for testing) and watch how the results behave on your computer. Perhaps (and just perhaps) you can have a 720p video file with balanced compression which give you enough quality and also light enough for your computer to play it.
Please have a look at this answer in which I explain something related.
Thread: Help needed converting 720p video to 480p
Way Too Much Ubuntu
Help needed converting 720p video to 480p
So, I used Imagination to create a HD 720p slide show. I saved the slideshow as a VOB file so I could retain the 720p resolution.
So, now I’ve got this 720p VOB file with MPEG-2 encoded video that I can’t seem to downconvert to 480p. Neither Avidemux nor Handbrake will allow me to do the conversion.
Any ideas on how I could do this?
Spilled the Beans
Re: Help needed converting 720p video to 480p
Quad Shot of Ubuntu
Re: Help needed converting 720p video to 480p
The ffmpeg/avconv ‘-s’ flag allows you to scale the frame size. From the terminal:
avconv -i input.vob -s hd480 output.vob
should do it. This will scale the video to 852×480. If you want other sizes, you can use the format wxh (e.g. 852×480); or you can find additional abbreviations in the avconv man page. Make sure you use the same aspect ratio, or you will end up with distorted images.
If you want a GUI, you can try out WINFF, though I’ve never used it so I don’t know if it has these options
Ubuntu addict and loving it
Join Date Nov 2008 Location Boston MetroWest Beans 16,074 —> Beans 16,074 Distro Kubuntu 22.04 Jammy Jellyfish
Re: Help needed converting 720p video to 480p
Mencoder with the «-vf scale» option will do this.
MPEG2 is quite inefficient by modern standards. MPEG4 is a much better choice in terms of the tradeoff between quality and filesize.
Way Too Much Ubuntu
Re: Help needed converting 720p video to 480p
Originally Posted by evilsoup
The ffmpeg/avconv ‘-s’ flag allows you to scale the frame size. From the terminal:
avconv -i input.vob -s hd480 output.vob
should do it. This will scale the video to 852×480. If you want other sizes, you can use the format wxh (e.g. 852×480); or you can find additional abbreviations in the avconv man page. Make sure you use the same aspect ratio, or you will end up with distorted images.
If you want a GUI, you can try out WINFF, though I’ve never used it so I don’t know if it has these options
Thanks for the info. I installed WINFF today, before I read your post, but I haven’t used it yet. I was looking for a graphical option but your command line above is simple enough that I could use that as well.