2012-04-30 23 views
5

Cuando extraigo secuencia de vídeo con ffmpeg usando la línea de comandos:¿Hay alguna manera fácil de extraer la corriente bruta h.264 en formato annexb?

ffmpeg -i {} -vcodec algún archivo de copia -f -un {rawvideo | H264 |} out.h264 lo

con algunos archivos de medios producidos por Adobe Media Encoder, solo los archivos .m4v (codificados como h.264 blu-ray) pueden producir algunos resultados utilizables.

Algún otro formato (como .f4v) puede producir transmisión h.264, pero sin PPS/SPS, y cada división comienza con el tamaño en lugar de la secuencia 00 00 00 01.

Deseo poder extraer cadenas en formato rawb de Annexb de todos los archivos posibles que contengan una secuencia h.264 válida. Sé que puedo agregar PPS/SPS y cambiar el tamaño en 00 00 00 01. Pero, ¿hay algún software existente que pueda hacer esto?


O se puede garantizar que siempre se puede extraer ffmpeg corrientes en formato annexb de archivo .m4v, no importa con qué software se codifica el archivo?

+0

Pregunta anterior, pero ¿el valor constante de PPS y SPS que recoge en algún lugar, como en el avcC? Porque yo mismo estoy codificando un demuxer realmente básico porque una biblioteca de decodificadores que estoy usando no es demultiplexada, y quiero asegurarme de que la transmisión que estoy reconstruyendo funcione. –

Respuesta

11

Lo que probablemente está buscando es el filtro h264_mp4toannexb flujo de bits, se invoca con la opción de línea de comandos -bsf:

ffmpeg -i {some file} -vcodec copy -bsf h264_mp4toannexb -an -f {rawvideo|h264|whatever} out.h264 

tenga en cuenta que si su versión de FFmpeg es un poco viejo, puede que tenga que utilizar -vbsf en lugar de -bsf (la opción se renombró recientemente).

+0

¿Existe un parámetro para especificar qué secuencia extraer (si el MP4 contiene múltiples flujos elementales H264)? –

+0

Nota: el archivo resultante se puede ver con 'ffplay out.h264', pero no con' vlc out.h264' para VLC 2.2.1. –

Cuestiones relacionadas