[FFmpeg-user] Trouble with h264 video in mpeg ts container

Xavier Benech xavier.benech at xb-labs.fr
Wed Sep 3 13:35:32 CEST 2014


Hi,

I try to encapsulate mp4 video (h264/aac) into an mpeg-ts container 
using ffmpeg but it produces invalid videos if the framerate (fps) is 
very low (<1). It works just fine for standard fps (like 25). If fps<1, 
the output is containing only audio.

Is there a way to make this work correctly? Or anyway workaround?

By the way, yes, I really need this very low fps for my usage... ;-)
Thanks for any help...

I'm using ffmpeg 2.3.2 release but reproduce same behaviour with 2.3.3.

I made the conversion using the cmd:
ffmpeg/bin/ffmpeg -i tests/converted/passthrough.mp4 -y -map 0 -c copy 
-f mpegts -bsf:v h264_mp4toannexb tests/converted/passthrough.ts

Full output here (files probing output below):

 > ffmpeg/bin/ffmpeg -i tests/converted/passthrough.mp4 -y -map 0 -c 
copy -f mpegts -bsf:v h264_mp4toannexb tests/converted/passthrough.ts
ffmpeg version 2.3.2 Copyright (c) 2000-2014 the FFmpeg developers
   built on Sep  1 2014 15:21:02 with llvm-gcc 4.2.1 (LLVM build 2336.11.00)
   configuration: --arch=x86_64 --enable-libx264 --enable-libfdk-aac 
--enable-gpl --enable-nonfree --enable-version3 --enable-shared 
--disable-static --disable-debug --disable-doc --disable-ffplay 
--disable-ffserver 
--prefix='/Users/xbenech/Documents/[Work]/Lima/third/MacOS' 
--bindir='/Users/xbenech/Documents/[Work]/Lima/third/MacOS/64/bin' 
--libdir='/Users/xbenech/Documents/[Work]/Lima/third/MacOS/64/lib' 
--shlibdir='/Users/xbenech/Documents/[Work]/Lima/third/MacOS/64/lib' 
--extra-cflags='-I/Users/xbenech/Documents/[Work]/Lima/third/MacOS/include' 
--extra-cxxflags='-I/Users/xbenech/Documents/[Work]/Lima/third/MacOS/include' 
--extra-ldflags='-L/Users/xbenech/Documents/[Work]/Lima/third/MacOS/64/lib'
   libavutil      52. 92.100 / 52. 92.100
   libavcodec     55. 69.100 / 55. 69.100
   libavformat    55. 48.100 / 55. 48.100
   libavdevice    55. 13.102 / 55. 13.102
   libavfilter     4. 11.100 /  4. 11.100
   libswscale      2.  6.100 /  2.  6.100
   libswresample   0. 19.100 /  0. 19.100
   libpostproc    52.  3.100 / 52.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'tests/converted/passthrough.mp4':
   Metadata:
     major_brand     : isom
     minor_version   : 512
     compatible_brands: isomiso2avc1mp41
     encoder         : Lavf55.48.100
   Duration: 00:01:10.00, start: 0.105375, bitrate: 56 kb/s
     Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 
0x31637661), yuv420p, 480x576 [SAR 8:5 DAR 4:3], 7 kb/s, 0.10 fps, 0.10 
tbr, 16384 tbn, 0.20 tbc (default)
     Metadata:
       handler_name    : VideoHandler
     Stream #0:1(fra): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, 
fltp, 56 kb/s (default)
     Metadata:
       handler_name    : SoundHandler
[adts @ 0x7fe62c032800] Using AVStream.codec.time_base as a timebase 
hint to the muxer is deprecated. Set AVStream.time_base instead.
Output #0, mpegts, to 'tests/converted/passthrough.ts':
   Metadata:
     major_brand     : isom
     minor_version   : 512
     compatible_brands: isomiso2avc1mp41
     encoder         : Lavf55.48.100
     Stream #0:0(und): Video: h264 (avc1 / 0x31637661), yuv420p, 480x576 
[SAR 8:5 DAR 4:3], q=2-31, 7 kb/s, 0.10 fps, 90k tbn, 0.10 tbc (default)
     Metadata:
       handler_name    : VideoHandler
     Stream #0:1(fra): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, 
56 kb/s (default)
     Metadata:
       handler_name    : SoundHandler
Stream mapping:
   Stream #0:0 -> #0:0 (copy)
   Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
frame=    7 fps=0.0 q=-1.0 Lsize=     558kB time=00:01:10.10 bitrate=  
65.2kbits/s
video:68kB audio:411kB subtitle:0kB other streams:0kB global headers:0kB 
muxing overhead: 16.576685%

Probing Files:

 > ffmpeg/bin/ffprobe tests/converted/passthrough.mp4
ffprobe version 2.3.2 Copyright (c) 2007-2014 the FFmpeg developers
   built on Sep  1 2014 15:21:02 with llvm-gcc 4.2.1 (LLVM build 2336.11.00)
   configuration: --arch=x86_64 --enable-libx264 --enable-libfdk-aac 
--enable-gpl --enable-nonfree --enable-version3 --enable-shared 
--disable-static --disable-debug --disable-doc --disable-ffplay 
--disable-ffserver 
--prefix='/Users/xbenech/Documents/[Work]/Lima/third/MacOS' 
--bindir='/Users/xbenech/Documents/[Work]/Lima/third/MacOS/64/bin' 
--libdir='/Users/xbenech/Documents/[Work]/Lima/third/MacOS/64/lib' 
--shlibdir='/Users/xbenech/Documents/[Work]/Lima/third/MacOS/64/lib' 
--extra-cflags='-I/Users/xbenech/Documents/[Work]/Lima/third/MacOS/include' 
--extra-cxxflags='-I/Users/xbenech/Documents/[Work]/Lima/third/MacOS/include' 
--extra-ldflags='-L/Users/xbenech/Documents/[Work]/Lima/third/MacOS/64/lib'
   libavutil      52. 92.100 / 52. 92.100
   libavcodec     55. 69.100 / 55. 69.100
   libavformat    55. 48.100 / 55. 48.100
   libavdevice    55. 13.102 / 55. 13.102
   libavfilter     4. 11.100 /  4. 11.100
   libswscale      2.  6.100 /  2.  6.100
   libswresample   0. 19.100 /  0. 19.100
   libpostproc    52.  3.100 / 52.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'tests/converted/passthrough.mp4':
   Metadata:
     major_brand     : isom
     minor_version   : 512
     compatible_brands: isomiso2avc1mp41
     encoder         : Lavf55.48.100
   Duration: 00:01:10.00, start: 0.105375, bitrate: 56 kb/s
     Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 
0x31637661), yuv420p, 480x576 [SAR 8:5 DAR 4:3], 7 kb/s, 0.10 fps, 0.10 
tbr, 16384 tbn, 0.20 tbc (default)
     Metadata:
       handler_name    : VideoHandler
     Stream #0:1(fra): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, 
fltp, 56 kb/s (default)
     Metadata:
       handler_name    : SoundHandler

 > ffmpeg/bin/ffprobe tests/converted/passthrough.ts
ffprobe version 2.3.2 Copyright (c) 2007-2014 the FFmpeg developers
   built on Sep  1 2014 15:21:02 with llvm-gcc 4.2.1 (LLVM build 2336.11.00)
   configuration: --arch=x86_64 --enable-libx264 --enable-libfdk-aac 
--enable-gpl --enable-nonfree --enable-version3 --enable-shared 
--disable-static --disable-debug --disable-doc --disable-ffplay 
--disable-ffserver 
--prefix='/Users/xbenech/Documents/[Work]/Lima/third/MacOS' 
--bindir='/Users/xbenech/Documents/[Work]/Lima/third/MacOS/64/bin' 
--libdir='/Users/xbenech/Documents/[Work]/Lima/third/MacOS/64/lib' 
--shlibdir='/Users/xbenech/Documents/[Work]/Lima/third/MacOS/64/lib' 
--extra-cflags='-I/Users/xbenech/Documents/[Work]/Lima/third/MacOS/include' 
--extra-cxxflags='-I/Users/xbenech/Documents/[Work]/Lima/third/MacOS/include' 
--extra-ldflags='-L/Users/xbenech/Documents/[Work]/Lima/third/MacOS/64/lib'
   libavutil      52. 92.100 / 52. 92.100
   libavcodec     55. 69.100 / 55. 69.100
   libavformat    55. 48.100 / 55. 48.100
   libavdevice    55. 13.102 / 55. 13.102
   libavfilter     4. 11.100 /  4. 11.100
   libswscale      2.  6.100 /  2.  6.100
   libswresample   0. 19.100 /  0. 19.100
   libpostproc    52.  3.100 / 52.  3.100
Input #0, mpegts, from 'tests/converted/passthrough.ts':
   Duration: 00:00:09.84, start: 38279.388856, bitrate: 87 kb/s
   Program 1
     Stream #0:0[0x44](???): Audio: aac ([15][0][0][0] / 0x000F), 48000 
Hz, stereo, fltp, 55 kb/s

-- 
Xavier Benech
Consultant Independant
xavier.benech at xb-labs.fr
Mob.: 06 30 39 72 95



More information about the ffmpeg-user mailing list