Столкнулся с проблемой на телевизоре LG, версия WebOs 0.6.3, что некоторые скачанные видео файлы не воспроизводятся на флешке. Телевизор просто пишет, что не удалось распознать файл, хотя например другой такой же, легко читается.
Проблема в кодеках, а именно h.264, чтобы заработало надо переконвертировать видео с использованием этого кодека. Проблема в том, что в директории с mp4 файлами, есть еще директории внутри которых уже лежат сами видео файлы.
Конвертация в single режиме:
ffmpeg -i <input_file.mp4> -vcodec libx264 -acodec aac <output_file.mp4>
Конвертация скриптом всех файлов в директории:
#!/bin/bash
DIR="<absulute_dir_path>"
find $DIR -type f -name "*.mp4" -exec sh -c '
for file do
base=$(basename "$file" .mp4)
output_dir=$(dirname "$file")
output="$output_dir/${base}_converted.mp4"
ffmpeg -i "$file" -vcodec libx264 -acodec aac "$output"
done
' sh {} +
DIR — тут полный путь до каталога с каталогами видео. Например /home/video/courses/linux. Внутри ожидаются еще каталоги уже в которых лежит конечный mp4 файл.
base — получаем имя файла без расширения.
output_dir — пути до файлов, без самих файлов, только директории.
output — формируем финальную переменную для сохранения конвертированного видео.
Запускаем из любой директории и ожидаем, параметры ffmpeg мы тут не тюнили (битрейт и прочее) поэтому едем на дефолтах . В среднем за 10 минут конвертируется примерно 200 мегабайт.