How can I convert a video from H.264 (High 4:4:4 Profile) to H.264 (Main Profile) using ffmpeg?
I can't do that with this command: ffmpeg -i 1/25359.mp4 -profile:v main out.mp4
.
That'd return an error:
...
That'd return an error:
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '1/25359.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf56.40.101
Duration: 00:00:06.08, start: 0.000000, bitrate: 1059 kb/s
Stream #0:0(und): Video: h264 (High 4:4:4 Predictive) (avc1 / 0x31637661), yuv444p, 351x297, 1057 kb/s, 12.50 fps, 12.50 tbr, 12800 tbn, 25 tbc (default)
Metadata:
handler_name : VideoHandler
No pixel format specified, yuv444p for H.264 encoding chosen.
Use -pix_fmt yuv420p for compatibility with outdated media players.
x264 [error]: main profile doesn't support 4:4:4
[libx264 @ 0x8fa9640] Error setting profile main.
[libx264 @ 0x8fa9640] Possible profiles: baseline main high high10 high422 high444
Output #0, mp4, to '1/24545.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf56.40.101
Stream #0:0(und): Video: h264, none, q=2-31, 128 kb/s, 12.50 fps (default)
Metadata:
handler_name : VideoHandler
encoder : Lavc56.60.100 libx264
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height
At the bottom, open drop-down menu beside Output Format and choose the desired output format from the Video tab. Then, to the video resolution, click the edit icon to open the Setting window. Here choose H264 from Encoder tab under the Video option and click Create.
The Constant Rate Factor or CRF is an option available in the libx264 encoder to set our desired output quality. It enables us to specify a target value that maps to a specific quality by adjusting the bitrates automatically based on the input video.
264/AVC Profiles. The baseline profile is the simplest profile, and must be supported by all decoders. It may be useful for real-time applications such as video conferencing, where the encoder and decoder must run quickly. The main profile is widely used.
Your source video has full-sized chroma planes - as indicated by the latter two 4s in YUV444P - and main profile doesn't support that format, so you'll have to select a pixel format like YUV 4:2:0
ffmpeg -i 1/25359.mp4 -vf "scale=2*trunc(iw/2):-2,setsar=1" -profile:v main -pix_fmt yuv420p out.mp4
The former answer was right, but I think the following answer was exactly what the asker want.
ffmpeg -i 1/25359.mp4 -profile:v main -pix_fmt yuv420p out.mp4
-profile:v
: means which mode you want to encode video, there are some options here
-pix_fmt
: yuv420p was allright for old videos.If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With