qscale - Problema ffmpeg h264: "Archivo para preajuste... no encontrado" en XP
libx265 (6)
tengo xp y como no estoy familiarizado con la compilación descargué la versión estática de win32 de ffmpeg, svn-r26251. Quiero cambiar el tamaño de un video de mp4 (1280x720 originalmente) para obtener un archivo de menor tamaño con aproximadamente la misma calidad. Mi comando es:
ffmpeg -i ma.mp4 -vcodec libx264 -vpre hq -s 640x360 ma2.mp4
sin embargo, dice "archivo para preestablecido ''hq'' no encontrado". intenté -fpre, no hizo diferencia. sin libx264, el archivo resultante, ma2.mp4, no se reproducirá en jwplayer, solo escuchará audio. (La razón es que no es "mpeg4 (h264)", es solo "mpeg4"). ¿que debería hacer?
ffmpeg dice que no puede encontrar su archivo preestablecido, hq.ffpreset
en su caso. más información en ffmpeg docs
Los ajustes preestablecidos [EDITAR] son solo por conveniencia. si tiene hq.ffpreset
archivo hq.ffpreset
, simplemente tome todo de él y póngalo en la línea de comando directamente
Este problema parece estar relacionado con XP, funciona en Win2K. Comprobé con Filemon y muestra que está buscando en X: / usr / local / share / ffmpeg para los archivos libx264-veryslow.ffpreset o veryslow.ffpreset - donde X es la unidad desde la que está ejecutando ffmpeg. Creé la ruta en el disco, copié todos los preajustes y ahora funciona.
Para el preajuste x264, en lugar de usar "-vpre", las compilaciones nuevas funcionarán con "-preset", ya que esto llamará al preajuste x264 directamente.
El proyecto ffmpeg ha sido renombrado como avconv y los nombres de los directorios han cambiado para reflejar esto. La documentación dice:
Primero ffmpeg busca un archivo llamado arg.ffpreset en los directorios ''$ FFMPEG_DATADIR'' (si está establecido), y ''$ HOME / .ffmpeg'', y en la columna de datos definida en el momento de la configuración (generalmente ''PREFIX / share / ffmpeg'') o en una carpeta ''ffpresets'' a lo largo del ejecutable en win32, en ese orden. Por ejemplo, si el argumento es libx264-max, buscará el archivo ''libx264-max.ffpreset''.
Esto significa que ahora buscará $HOME/.avconv
y también PREFIX/share/avconv
que normalmente es /usr/share/avconv
.
Aquí se presentan dos soluciones para usuarios de Windows para ayudar a FFmpeg a encontrar su carpeta de preajustes x264. Acompañando cada solución hay un archivo por lotes para automatizar la solución en su totalidad.
Use solo una de estas soluciones.
La primera solución es más fácil, pero tendrá que repetirla en cada unidad en la que desee utilizar FFmpeg. Si no desea hacer eso, use la segunda solución. Es un poco más complicado, pero el archivo por lotes hace que el proceso sea sencillo.
Nuevamente, no use ambas soluciones. Yo estoy a favor de la Solución 2.
SOLUCIÓN 1
FFmpeg busca preajustes x264 en C:/usr/local/share/ffmpeg
, un directorio que debe crearse en Windows:
- Crea una carpeta
C:/usr/local/share/ffmpeg
- Copie todos los archivos preestablecidos de
~ffmpeg/presets
en la nueva carpeta.
O ejecute lo siguiente como un archivo por lotes:
::BEGIN SOLUTION 1 BATCH FILE
md C:/usr/local/share/ffmpeg
copy "C:/Program Files (x86)/ffmpeg/presets" C:/usr/local/share/ffmpeg
::END SOLUTION 1 BATCH FILE
Antes de ejecutar este archivo por lotes, asegúrese de cambiar C:/Program Files (x86)/ffmpeg/presets
a la ubicación actual de su carpeta ~/ffmpeg/presets
.
SOLUCIÓN 2
FFmpeg busca preajustes x264 en %HOME%/.ffmpeg
, un entorno que debe crearse en Windows:
Primero, crea dos carpetas:
- Cree la carpeta
HOME
(en este ejemplo, laC:/Users/your_user_name/HOME
enC:/Users/your_user_name/HOME
}; - Dentro de la carpeta
HOME
cree otra carpeta nueva llamada.ffmpeg
( observe el período al comienzo del nombre del archivo); - Copie todos los archivos preestablecidos de la carpeta
~/ffmpeg/presets
en la nueva carpetaC:/Users/your_user_name/HOME/.ffmpeg
- Recuerde cambiar
your_user_name
por su nombre de usuario real
Luego, establezca la carpeta HOME
como una variable de entorno %HOME%
:
- Abra una ventana del explorador;
- Vaya a
Control Panel/System and Security/System
; - Seleccione la
Advanced system settings
(lado izquierdo de la ventana); - Seleccionar
Environment Variables
(botón cerca de la parte inferior); - Seleccione
New...
(en Variables del sistema para que los ajustes preestablecidos estén disponibles para todos los usuarios); - En
Variable name:
ingreseHOME
- En
Variable value:
ingreseC:/Users/your_user_name/HOME
- Recuerde cambiar
your_user_name
por su nombre de usuario real
O ejecute lo siguiente como un archivo por lotes:
::BEGIN SOLUTION 2 BATCH FILE
md %userprofile%/HOME
md %userprofile%/HOME/.ffmpeg
copy "C:/Program Files (x86)/ffmpeg/presets" %userprofile%/HOME/.ffmpeg
setx HOME %userprofile%/HOME/ /m
::END SOLUTION 2 BATCH FILE
Antes de ejecutar este archivo por lotes, asegúrese de cambiar C:/Program Files (x86)/ffmpeg/presets
a la ubicación actual de su carpeta ~/ffmpeg/presets
.
Como está ejecutando Windows, a menos que cambie su variable% HOME%, tendrá que escribir la ruta completa a "hq.ffpreset". En su lugar, puede llamarse "libx264-hq.ffpreset". Además, esto puede o no aplicarse, pero asegúrese de que su compilación se haya realizado con soporte para libx264. Si supiera que se me permitió, me vincularía a mi compilación personal ffmpeg 1.2 compartida para win32. Puedo confirmar que este comando funciona con esta versión.
Si no tiene el archivo preestablecido de HQ, encontré un enlace a una versión aquí: https://raw.github.com/joeyblake/FFmpeg-Presets/master/libx264-hq.ffpreset
Ponlo donde quieras (en algún lugar en% PATH% podría funcionar bien).