ffmpeg:conversions:convert_h265_to_h264
Table of Contents
ffmpeg - Conversions - Convert H265 to H264
Software Encoding
Using ffmpeg
ffmpeg -i input.mkv -c copy output.mp4
Matroska output
mkdir h264vids for f in *.mp4; do ffmpeg -i "$f" -map 0 -c copy -c:v libx264 -crf 23 -preset medium h264vids/"${f%.*}.mkv"; done
- Will output to a directory named h264vids.
- Assumes your inputs are .mp4. If not, change the .mp4 instance in the example to your input file type, or just use the greedy * by itself.
- Adjust -crf for quality and -preset for encoding speed/efficiency. Or just remove these options and use the defaults which are fairly good and should suffice for most (the example is using the default values for these options).
See FFmpeg Wiki: H.264 for more info on these options.
MP4 output
This example is a little more complicated.
This will perform conditional encoding depending if the input audio is AAC or not.
If the input audio is AAC then the audio will be stream copied (re-muxed) as is and needless re-encoding is avoided.
If the input audio is not AAC then it will be re-encoded to AAC.
#!/bin/bash mkdir h264vids for f in *.mkv do audioformat=$(ffprobe -loglevel error -select_streams a:0 -show_entries stream=codec_name -of default=nw=1:nk=1 "$f") if [ "$audioformat" = "aac" ]; then ffmpeg -i "$f" -c:v libx264 -crf 23 -preset medium -c:a copy -movflags +faststart h264vids/"${f%.*}.mp4" else ffmpeg -i "$f" -c:v libx264 -crf 23 -preset medium -c:a aac -movflags +faststart h264vids/"${f%.*}.mp4" fi done
- Will output to a directory named h264vids.
- Assumes your inputs are .mkv. If not, change the .mkv instance in the example to your input file type, or just use the greedy * by itself.
- See note above regarding -crf and -preset.
- You can pause the encoding with ctrl+z and resume with fg.
Using ffmpeg
for file in *265.mkv; do nice -n19 ffmpeg -i $file -c copy -c:v libx264 ${file/%265.mkv/264.mkv}; done
- Assumes that the files have always a name ending in 265.mkv.
- This ending will be replaced with 264.mkv.
Using libav
sudo apt-get install libav-tools avconv -i oldvideo.mkv -ar 22050 convertedvideo.mp4
ffmpeg/conversions/convert_h265_to_h264.txt · Last modified: 2023/06/13 10:56 by peter