Гербера для перекодировки *.avi видео на h264 mkv?
Я купил Samsung SmartTV, который не поддерживает кодек DIVX/XVID, поэтому любой из старых файлов *.avi у меня работает.
Хотя я всегда могу их преобразовать, в моей сети DLNA есть другие устройства, которые поддерживают их, поэтому я считаю, что быстрое преобразование предпочтительнее.
Я пытаюсь установить перекодировку и типы файлов следующим образом config.xml
(соответствующая часть):
<mappings>
<extension-mimetype ignore-unknown="no">
<map from="mp3" to="audio/mpeg"/>
<map from="ogx" to="application/ogg"/>
<map from="ogv" to="video/ogg"/>
<map from="oga" to="audio/ogg"/>
<map from="ogg" to="audio/ogg"/>
<map from="ogm" to="video/ogg"/>
<map from="asf" to="video/x-ms-asf"/>
<map from="asx" to="video/x-ms-asf"/>
<map from="wma" to="audio/x-ms-wma"/>
<map from="wax" to="audio/x-ms-wax"/>
<map from="wmv" to="video/x-ms-wmv"/>
<map from="wvx" to="video/x-ms-wvx"/>
<map from="wm" to="video/x-ms-wm"/>
<map from="wmx" to="video/x-ms-wmx"/>
<map from="m3u" to="audio/x-mpegurl"/>
<map from="pls" to="audio/x-scpls"/>
<map from="flv" to="video/x-flv"/>
<map from="mkv" to="video/x-matroska"/>
<map from="mka" to="audio/x-matroska"/>
<map from="dsf" to="audio/x-dsd"/>
<map from="dff" to="audio/x-dsd"/>
<map from="wv" to="audio/x-wavpack"/>
<map from="avi" to="video/divx"/>
</extension-mimetype>
<mimetype-upnpclass>
<map from="audio/*" to="object.item.audioItem.musicTrack"/>
<map from="video/*" to="object.item.videoItem"/>
<map from="image/*" to="object.item.imageItem"/>
<map from="application/ogg" to="object.item.audioItem.musicTrack"/>
</mimetype-upnpclass>
<mimetype-contenttype>
<treat mimetype="audio/mpeg" as="mp3"/>
<treat mimetype="application/ogg" as="ogg"/>
<treat mimetype="audio/ogg" as="ogg"/>
<treat mimetype="audio/x-flac" as="flac"/>
<treat mimetype="audio/flac" as="flac"/>
<treat mimetype="audio/x-ms-wma" as="wma"/>
<treat mimetype="audio/x-wavpack" as="wv"/>
<treat mimetype="image/jpeg" as="jpg"/>
<treat mimetype="audio/x-mpegurl" as="playlist"/>
<treat mimetype="audio/x-scpls" as="playlist"/>
<treat mimetype="audio/x-wav" as="pcm"/>
<treat mimetype="audio/L16" as="pcm"/>
<treat mimetype="video/x-msvideo" as="avi"/>
<treat mimetype="video/mp4" as="mp4"/>
<treat mimetype="audio/mp4" as="mp4"/>
<treat mimetype="video/x-matroska" as="mkv"/>
<treat mimetype="audio/x-matroska" as="mka"/>
<treat mimetype="audio/x-dsd" as="dsd"/>
</mimetype-contenttype>
</mappings>
<transcoding enabled="yes">
<mimetype-profile-mappings>
<transcode mimetype="video/divx" using="ffmpegavi2h264"/>
</mimetype-profile-mappings>
<profiles>
<profile name="ffmpegavi2h264" enabled="yes" type="external">
<mimetype>video/x-matroska</mimetype>
<accept-url>no</accept-url>
<first-resource>yes</first-resource>
<agent command="ffmpeg" arguments="-y -i %in -c:v libx264 -preset fast -c:a copy %out"/>
<buffer size="4194304" chunk-size="524288" fill-size="1048576"/>
</profile>
</profiles>
</transcoding>
Хотя я могу видеть, когда я выбираю avi-файл, запускается ffmpeg, TV говорит, что это недопустимый файл для воспроизведения.
Что мне не хватает?
Спасибо, так как я не знаю что еще попробовать
0 ответов
Вы должны добавить опцию для формата вывода - -f avi
(формат силы), т.е.
...
<profile name="ffmpegavi2h264" enabled="yes" type="external">
<mimetype>video/x-matroska</mimetype>
<accept-url>no</accept-url>
<first-resource>yes</first-resource>
<agent command="ffmpeg" arguments="-y -i %in -c:v libx264 -preset fast -c:a copy -f avi %out"/>
<buffer size="4194304" chunk-size="524288" fill-size="1048576"/>
</profile>
...
Герберы %out
замените временный файл без расширения, поэтому ffmpeg выдаст ошибку - Unable to find a suitable output format without extension