Acerca de Productos Asistencia Blog

Cómo editar transmisiones HLS MP4 fragmentadas (M3U8) con el SDK de edición de video

image

 

  By Olga Krovyakova - modified October 2, 2023, created April 1, 2019

Con la versión 4.2 recientemente lanzada, el SDK de edición de video de Solveig Multimedia amplía los formatos admitidos.
La versión actual generalmente se centra en los formatos de transmisión en línea.

Video Editing SDK v.4.2 admite los siguientes formatos:

  • Transmisiones MP4 HLS fragmentadas
  • Archivos MP4 alojados en HTTP
  • Vídeos en línea de youtube

En este artículo encontrará la demostración de la compatibilidad con transmisiones HLS MP4 fragmentadas.

 

PRUEBA GRATIS el SDK de edición de vídeo

 

Compatibilidad con transmisiones fragmentadas de MP4 HLS

Video Editing SDK v.4.2 admite las siguientes funciones para transmisiones HLS MP4 fragmentadas:

Reproducción.

Puede abrir fácilmente la transmisión Fragmented MP4 HLS M3U8 y trabajar con ella como con los archivos locales. Puede navegar por el archivo y reproducirlo. Sólo las partes necesarias para la vista previa de la transmisión se descargarán a su PC.

Para obtener una vista previa de la transmisión HLS MP4 fragmentada, puede crear el siguiente gráfico:

Graph to preview the fragmented MP4 HLS stream

El gráfico contiene una fuente SolveigMM HLS como filtro de fuente y un decodificador de video Elecard AVC como filtro decodificador de video. Ambos filtros se enviaron con el SDK.

Utilice la aplicación de muestra SMM Trim C++ para probar la compatibilidad con la reproducción y el recorte de transmisiones HLS MP4 fragmentadas.
El siguiente vídeo demuestra lo que puede hacer con las transmisiones HLS MP4 fragmentadas mediante el SDK de edición de vídeo v.4.2:

button

Edición.

El SDK de edición de video ahora es capaz de recortar las transmisiones HLS MP4 fragmentadas. Video Editing Engine es el componente principal a cargo. Lo que debe hacer es configurar el motor de edición de video, especificar el XTL, describir su tarea actual, luego ejecutarlo y esperar a que finalice.

Video Editing Engine es un componente COM que expone el ITrimmerObjControly lo crea de la siguiente manera:

hr = ::CoCreateInstance( CLSID_TrimmerObjControl, NULL, CLSCTX_INPROC, IID_ITrimmerObjControl, (void**)&m_pITrimmerObjControl );

Para configurar el motor de edición debe utilizar la interfaz IModuleConfig :

hr = m_pITrimmerObjControl->QueryInterface(IID_IModuleConfig, (void **)&m_pModuleCfgEditObj);

Debe usar la interfaz obtenida para configurar una cadena XTL que contenga su tarea de recorte y, opcionalmente, especificar la devolución de llamada para rastrear el progreso de la operación:

VARIANTE var1 = {0}, var2 = {0};

var1.vt = VT_BSTR;
var1.bstrVal = ...; //cadena de tarea en formato XTL
hr = m_pModuleCfgEditObj->SetValue ( &SMAT_XTLString, &var1);

var2.vt = VT_BYREF|VT_UI1;
var2.pbVal = (BYTE*) &m_xCTrimmerObjControlCB; //puntero a la clase de devolución de llamada
hr = m_pModuleCfgEditObj->SetValue ( &SMAT_Callback, &var2);

VARIANTE var_res = {0};
hr = m_pModuleCfgEditObj->CommitChanges(&var_res);

El proceso de recorte se inicia invocando el método ITrimmerObjControl::Start() :

hr = m_pITrimmerObjControl->Inicio();

Y durante el proceso de recorte puedes pedirle al motor de edición un valor de progreso:

VARIANTE var = {0};
hr = m_pModuleCfgEditObj->GetValue ( &SMAT_Progress, &var);

Cuando finaliza el procesamiento, el motor de edición invoca ITrimmerObjControlCB::OnStop() desde la devolución de llamada.

A continuación puede ver el ejemplo de picadura XTL, que contiene una tarea de recorte:

<versión de líneas de tiempo = "2">
 <línea de tiempo>
  <salida del grupo="C:\hls\output.m3u8">
   <pista de vídeo="1" audio="1" texto="1" banderas="">
    <clip src="http://smarteditingonline.solveigmm.com/files/test_multibitrate.m3u8"
                    start="160413589" stop="229542097" timeFormat="100ns_units">
    <clip src="http://smarteditingonline.solveigmm.com/files/test_multibitrate.m3u8"
                    start="469719350" stop="572525849" timeFormat="100ns_units">
   </pista>
  </grupo>
 </línea de tiempo>
</líneas de tiempo>

El archivo fuente en este XTL es el archivo HLS MP4 fragmentado, alojado en http://smarteditingonline.solveigmm.com. Se guardarán dos intervalos (representados por etiquetas 'clip') desde el archivo fuente en el archivo de salida:

  • 160413589 - 229542097 UNIDADES (o 16.041 - 22.954 seg) y
  • 469719350 - 572525849 UNIDADES (o 46.971 - 57.252 seg)

Si el archivo fuente contiene múltiples transmisiones (por ejemplo, para diferentes valores de tasa de bits), se recreará la estructura fuente.
El archivo de prueba http://smarteditingonline.solveigmm.com/files/test_multibitrate.m3u8 contiene 2 transmisiones diferentes con diferentes valores de tasa de bits (vea la imagen a continuación).

image

Después de recortar, la carpeta de salida (C:\hls) contendrá 2 subcarpetas con ambas transmisiones y el archivo de lista de reproducción M3U8 (output.m3u8) con la descripción de las configuraciones de las transmisiones. La siguiente imagen muestra la estructura del HLS recortado:

image

La estructura del archivo M3U8 de salida:

#EXTM3U

#EXT-X-STREAM-INF:AVERAGE-BANDWIDTH=1007161,BANDWIDTH=1275068,VIDEO-RANGE=SDR,CODECS="mp4a.40.2, avc1.42c01f",RESOLUTION=1280x720,FRAME-RATE=24.000,CLOSED-CAPTIONS = NINGUNO
500K/prog_index.m3u8

#EXT-X-STREAM-INF:AVERAGE-BANDWIDTH=1564155,BANDWIDTH=2042932,VIDEO-RANGE=SDR,CODECS="mp4a.40.2, avc1.42c01f",RESOLUTION=1280x720,FRAME-RATE=24.000,CLOSED-CAPTIONS = NINGUNO
1000K/prog_index.m3u8

El archivo recortado se puede encontrar en el siguiente enlace:
http://smarteditingonline.solveigmm.com/sdkdemo/hls/output.m3u8

Consulte los códigos fuente de la aplicación de muestra SMM Trim C++ para obtener una descripción detallada sobre cómo configurar y ejecutar el motor de edición de video para realizar la operación de recorte.

 

PRUEBA GRATIS el SDK de edición de vídeo

 

Preguntas frecuentes

 

Qué es una transmisión MP4 HLS fragmentada (M3U8)?

Una transmisión MP4 HLS fragmentada es un formato de transmisión de video popular que utiliza archivos MP4 fragmentados y la lista de reproducción M3U8 para entregar contenido de video a través de Internet. Al dividir el vídeo en segmentos más pequeños y proporcionar capacidades de transmisión adaptable, HLS garantiza una reproducción fluida y compatibilidad en una amplia gama de dispositivos y plataformas.

Entonces, ¿por qué el archivo MP4 debe estar fragmentado? Si desea utilizar HEVC/H.265 o AVC/H.264, debe usarlo de acuerdo con los estándares de codificación de video de Apple en su Especificación de creación HLS. Los archivos MP4 fragmentados también son compatibles con MPEG-DASH, una alternativa a HLS, por lo que puedes utilizar los mismos archivos; la única diferencia es el archivo de manifiesto (lista de reproducción). Esto da como resultado menos requisitos de codificación y almacenamiento, lo que debería ahorrar gastos.

 

Puedo editar transmisiones MP4 HLS fragmentadas con el software de edición de video tradicional?

Editar transmisiones fragmentadas de MP4 HLS con el software de edición de video tradicional puede resultar un desafío debido a la naturaleza segmentada del formato. El software tradicional está diseñado para funcionar con archivos de vídeo completos en lugar de segmentos individuales. Para editar transmisiones HLS, se recomienda convertirlas en un único archivo de video utilizando herramientas especializadas antes de importarlas al software de edición tradicional. Este paso de conversión puede resultar en la pérdida de funciones de transmisión adaptativa y metadatos asociados con la transmisión original.

En resumen, editar transmisiones MP4 HLS fragmentadas con software de edición de video tradicional generalmente implica convertir los segmentos en un archivo de video completo antes de editarlos. Este proceso simplifica la compatibilidad, pero puede resultar en la pérdida de ciertas características específicas de HLS.

 

Hay otras funciones de edición disponibles para transmisiones MP4 HLS fragmentadas además del recorte?

Las siguientes capacidades están disponibles para transmisiones HLS MP4 fragmentadas en Video Editing SDK v.4.2:
  • Reproducción. La transmisión MP4 HLS M3U8 fragmentada es tan fácil de acceder y trabajar con ella como los archivos locales. El archivo se puede reproducir y explorar. Su computadora solo descargará las secciones de la transmisión necesarias para reproducir la vista previa.
  • Edición. Las transmisiones MP4 HLS fragmentadas se pueden editar con el uso de un kit de desarrollo de software de edición de video. El núcleo del sistema es el motor de edición de vídeo. Después de configurar el motor de edición de video y proporcionar el XTL que describe la tarea actual, puede iniciar el programa y esperar a que finalice.

Para obtener información sobre cómo configurar y ejecutar el motor de edición de vídeo para recortar, consulte los códigos fuente de la aplicación de muestra SMM Trim C++.

 

Qué plataformas son compatibles con el SDK?

El SDK de edición de video está disponible en plataformas Windows, Linux, macOS y Android.

 

Existen pautas específicas para el manejo de subtítulos en una transmisión MP4 HLS fragmentada?

Al manejar subtítulos en una transmisión MP4 HLS fragmentada, es importante utilizar un formato de subtítulos compatible (por ejemplo, WebVTT o TTML), garantizar la alineación con los segmentos de video, incluir una lista de reproducción multimedia de subtítulos separada, considerar la sincronización entre transmisiones variantes y analizar minuciosamente Prueba de visualización y accesibilidad.

 

Puedo monetizar o insertar anuncios en una transmisión MP4 HLS fragmentada?

Sí, es posible monetizar o insertar anuncios en una transmisión MP4 HLS fragmentada. HLS admite varios métodos para la inserción y monetización de anuncios. El enfoque más común es utilizar marcadores de anuncios dentro de la transmisión que indican dónde se deben insertar los anuncios. La inserción de anuncios se puede realizar tanto en el lado del servidor como en el del cliente.

 

 About the author

imageOlga Krovyakova is the Technical Support Manager in Solveig Multimedia since 2010.

She is the author of many text and video guidelines of company's products: Video Splitter, HyperCam, WMP Trimmer Plugin, AVI Trimmer+ and TriMP4.

She works with programs every day and therefore knows very well how they work. Сontact Olga via support@solveigmm.com if you have any questions. She will gladly assist you!