video mp4 para asterisco con ulaw como audio y h263 para video

1

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

Jamil Farooq
fuente
para simplificar cómo tener un archivo mp4 de audio / video válido con ulaw audio y video h263
Jamil Farooq
No entiendo por qué estás diciendo "ffmpeg" cuando estás usando avconv.
llogan
Acabo de leer tu publicación sobre la diferencia. Pensé que los dos son iguales. sintiéndose culpable
Jamil Farooq
avconv no es ffmpeg
Sarge Borsch
@ user3392156 No debería sentirse culpable: los avconvdesarrolladores 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.).
llogan

Respuestas:

1

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 seguro avconv). Probablemente algo esto:

Could not find tag for codec h263 (or pcm_mulaw) in stream #0,
codec not currently supported in container

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:

    ffmpeg -i input.3gp -c copy output.mkv
    
  • o volver a codificar a algo aceptable para MP4, como video H.264 y audio AAC.

    ffmpeg -i input.3gp -c:v libx264 -c:a aac -strict experimental output.mp4
    

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. El avconvque está utilizando puede ser muy antiguo, el desarrollo de FFmpeg es muy activo y ffmpegtiene 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.

lema
fuente
Bueno, tengo que ser selectivo para el códec de audio y video para que sea compatible con Asterisk. ¿También quiero saber si no puedo tener los dos códecs en el contenedor MP4, es la limitación por ffmpeg o por MP4 por diseñado, no puede tener los dos juntos? En realidad, quería tener un archivo insinuado con los dos códecs. pero avconv no pudo producir uno con una carga útil válida para que lo leyera. No sé si es un problema con ffmpeg también. Usé MP4creator para insinuar y funcionó.
Jamil Farooq
@ user3392156 No sé si H.263 y mulaw están especificados para ser compatibles con MP4 o no, pero ffmpegno 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 el moovátomo al comienzo del archivo. Puedes hacerlo con el ffmpeguso -movflags +faststart.
llogan
Se agrega una sugerencia de video en avconv usando, -movflags rtphintpero cuando lo usé, no agrega carga útil H263 ni ninguna
Jamil Farooq
0

He 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.

Jamil Farooq
fuente
Proporcionando qué conversión, específicamente? Muestra cuatro comandos usando tres herramientas diferentes. Que quieres ffmpeghacer 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.
llogan
@LordNeckbeard siguiendo dos cosas fueron necesarias para ejecutar el archivo en un asterisco que, a mi entender, ausente en avconv (y también en ffmpeg, corríjame si estoy equivocado) 1) agregue pista de pista a pistas de audio / video mp4 / 3gp que se logró a través de mp4creator . 2) para agregar la pista de audio pcm_mulaw al archivo mp4 que se logró a través de pcm2mp4. también el archivo mp4 resultante se podía leer a través de libmp4v2, lo que me hace pensar que es perfectamente válido tener códecs ulaw y h263 en un contenedor mp4 contrario a ffmpeg (como sugirió que ffmpeg no lo haría) y avconv (como lo observé, no está permitiendo eso ).
Jamil Farooq
Actualmente no estoy usando ffmpeg. pero explorar otros recursos en línea me hace pensar que incluso ffmpeg no facilitaría dicha conversión (por encima de los dos puntos que mencioné). Me encantaría saber si estoy equivocado.
Jamil Farooq
también, como mencioné anteriormente, avconv y ffmpeg proporcionan la posibilidad de agregar pistas de pistas (el primero de los dos requisitos), -movflags rtphintpero no pudieron agregar una carga útil válida para pistas de pistas por razones que no conozco o probablemente no conozco el uso correcto.
Jamil Farooq