Escenario: quiero reproducir un archivo de video en asterisco. mi softphone solo admite ulaw / h263 para audio y video respectivamente. Así que estoy permitiendo ambos formatos en el archivo sip.conf y espero que se ejecute. La versión del asterisco que estoy usando es la 11.7.
Estoy usando mp4_play de app_mp4 para reproducir archivos con sugerencias mp4 que se convierten con mp4creator.
Solución:
Lo que intento hacer es crear / convertir un archivo AV usando ffmpeg para formatear pcm_mulaw y copiar video que ya es h263 usando el comando
avconv -i input.3gp -c:a pcm_mulaw -c:v copy output.mp4
Estoy recibiendo este mensaje de error:
Could not write header for output file #0 (incorrect codec parameters ?): Operation not permitted
Las preguntas son:
1- ¿Me estoy moviendo en la dirección correcta en lo que respecta a reproducir un video en asterisco para este softphone en particular?
2- ¿es posible usar ffmpeg de tal manera y el contenido aún se puede reproducir usando reproductores multimedia?
3- ¿Qué otra alternativa tengo para lograr la misma tarea? y cómo puedo evitar este error que estoy teniendo
Saludos
avconv
desarrolladores no facilitaron exactamente a los usuarios la diferencia. Proporcionaron una "ffmpeg
" falsificación durante un tiempo con un mensaje confuso, e incluso el nombre Libav ya fue utilizado históricamente por FFmpeg como un nombre colectivo para referirse a sus bibliotecas (libavcodec, libavformat, etc.).Respuestas:
Lo que no puedes hacer
No puede poner audio pcm_mulaw o video H.263 en el contenedor MP4.
El error que proporcionó por sí mismo generalmente no es informativo, pero siempre va acompañado del error real (al menos
ffmpeg
, no estoy seguroavconv
). Probablemente algo esto:Esta es una razón para incluir siempre la salida completa de la consola cuando se encuentran problemas.
Lo que puedes hacer
Tu también puedes:
cambiar el contenedor de formato de salida:
o volver a codificar a algo aceptable para MP4, como video H.264 y audio AAC.
No sé nada sobre Asterisk, así que no sé qué sería lo mejor para usted, pero esto al menos tratará el problema exacto que está experimentando.
Afuera con lo viejo
Recomiendo usar una compilación reciente de
ffmpeg
. Elavconv
que está utilizando puede ser muy antiguo, el desarrollo de FFmpeg es muy activo yffmpeg
tiene más funciones. Las compilaciones estáticas son fáciles: solo descarga, extrae y ejecuta. Consulte la página de descarga de FFmpeg para ver las opciones para Linux, OS X y Windows.fuente
ffmpeg
no lo harán, y nunca he visto ningún archivo de muestra que contenga tal combinación. No estoy seguro de lo que quiere decir con "sugerencia", pero supongo que desea reubicar elmoov
átomo al comienzo del archivo. Puedes hacerlo con elffmpeg
uso-movflags +faststart
.-movflags rtphint
pero cuando lo usé, no agrega carga útil H263 ni ningunaHe encontrado una solución para ello y creo que debería publicarse ya que la solución está disponible, pero supongo que no está muy bien difundida.
http://downloads.i6net.com/misc/video_tools/debian/ proporciona varios recursos para el mismo propósito.
He usado ffmpeg / avconv para convertir h264 a h263p
avconv -i ../big_buck_bunny_240p_50mb.mp4 -c: v h263 -vf scale = 176: 144 -an /tmp/sample-1.3gp
Se agregó información de seguimiento en el archivo usando mp4creator
mp4creator -hint = 1 /tmp/sample-1.3gp
usó ffmpeg / avconv para convertir la pista de audio a ulaw usando
avconv -y -i ../big_buck_bunny_240p_50mb.mp4 -acodec pcm_mulaw -ar 8000 -ac 1 -f mulaw /tmp/convert.mulaw
y usé pcm2mp4 para convertir el archivo mulaw obtenido anteriormente a 3gp. esto también agrega información de pista para la pista de audio
pcm2mp4 /tmp/convert.mulaw /tmp/sample-1.3gp
También me gustaría saber por qué ffmpeg no proporciona esta conversión.
fuente
ffmpeg
hacer Además, no use el término "ffmpeg / avconv". No son lo mismo y eso solo causa confusión. Por ejemplo, mencionas "ffmpeg / avconv" pero estás usando avconv, luego preguntas por qué ffmpeg no está haciendo algo, lo que hace que realmente no siga tu pregunta.-movflags rtphint
pero no pudieron agregar una carga útil válida para pistas de pistas por razones que no conozco o probablemente no conozco el uso correcto.