User Tools

Site Tools


ffmpeg:conversions:convert_h265_to_h264

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

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki