How can I convert raw H264 file to the MOV or MP4 format using -vcodec copy?

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

How can I convert raw H264 file to the MOV or MP4 format using -vcodec copy?

wl2776
Administrator
I've got a file containing a dump of H.264 stream, unpacked from RTP.

ffplay recognizes and successfully plays this file. While playing it writes the following

Input #0, h264, from 'raw_video_h264':                                                                                      
  Duration: N/A, bitrate: N/A                                                                                                
    Stream #0.0: Video: h264, yuv420p, 704x576, 25 fps, 25 tbr, 1200k tbn, 50 tbc

Now, I have to create a .mov or .mp4 file with these data, without recoding them.
So, using -vcodec copy switch is a must.

I run
ffmpeg -f h264 -i raw_video_h264 -vcodec copy -f mp4 ffm_raw_video_h264_recode.mp4
or, analogously,
ffmpeg -f h264 -i raw_video_h264 -vcodec copy -f mov ffm_raw_video_h264_recode.mov

However, the resulting file is unplayable. Both ffplay and mplayer show gray window.
How can I make ffmpeg to produce a playable file?
Reply | Threaded
Open this post in threaded view
|

Re: How can I convert raw H264 file to the MOV or MP4 format using -vcodec copy?

Artur Bodera
On Thu, Feb 11, 2010 at 5:16 PM, wl2776 <[hidden email]> wrote:

>
> I've got a file containing a dump of H.264 stream, unpacked from RTP.
>
> ffplay recognizes and successfully plays this file. While playing it writes
> the following
>
> Input #0, h264, from 'raw_video_h264':
>  Duration: N/A, bitrate: N/A
>    Stream #0.0: Video: h264, yuv420p, 704x576, 25 fps, 25 tbr, 1200k tbn,
> 50 tbc
>
> Now, I have to create a .mov or .mp4 file with these data, without recoding
> them.
> So, using -vcodec copy switch is a must.
>
> I run
> ffmpeg -f h264 -i raw_video_h264 -vcodec copy -f mp4
> ffm_raw_video_h264_recode.mp4
> or, analogously,
> ffmpeg -f h264 -i raw_video_h264 -vcodec copy -f mov
> ffm_raw_video_h264_recode.mov
>
>
Full command output please. It often helps a lot.

--

     __
    /.)\   +48 695 600 936
    \(./   [hidden email]
_______________________________________________
ffmpeg-user mailing list
[hidden email]
https://lists.mplayerhq.hu/mailman/listinfo/ffmpeg-user
Reply | Threaded
Open this post in threaded view
|

Re: How can I convert raw H264 file to the MOV or MP4 format using -vcodec copy?

wl2776
Administrator
Artur Bodera wrote
> Input #0, h264, from 'raw_video_h264':
>  Duration: N/A, bitrate: N/A
>    Stream #0.0: Video: h264, yuv420p, 704x576, 25 fps, 25 tbr, 1200k tbn,
> 50 tbc
Full command output please. It often helps a lot.
$ ffmpeg -i raw_video_h264.h264
FFmpeg version SVN-r21768, Copyright (c) 2000-2010 Fabrice Bellard, et al.
  built on Feb 12 2010 11:00:01 with gcc 4.4.1
  configuration: --enable-static --disable-shared --cpu=i686 --enable-pthreads --disable-ffserver --disable-ffplay --disable-vdpau --enable-gpl --enable-nonfree --enable-libmp3lame --enable-libfaac --enable-libx264 --enable-libxvid --prefix=/usr/local
  libavutil     50. 9. 0 / 50. 9. 0
  libavcodec    52.53. 0 / 52.53. 0
  libavformat   52.52. 0 / 52.52. 0
  libavdevice   52. 2. 0 / 52. 2. 0
  libswscale     0.10. 0 /  0.10. 0
[h264 @ 0x8dec5f0]non-existing PPS referenced
[h264 @ 0x8dec5f0]non-existing PPS 194 referenced
[h264 @ 0x8dec5f0]decode_slice_header error
[h264 @ 0x8dec5f0]no frame!
[h264 @ 0x8dec5f0]non-existing PPS referenced
[h264 @ 0x8dec5f0]non-existing PPS 194 referenced
[h264 @ 0x8dec5f0]decode_slice_header error
[h264 @ 0x8dec5f0]no frame!
[h264 @ 0x8dec5f0]non-existing PPS referenced
[h264 @ 0x8dec5f0]non-existing PPS 194 referenced
[h264 @ 0x8dec5f0]decode_slice_header error
[h264 @ 0x8dec5f0]no frame!
[h264 @ 0x8dec5f0]non-existing PPS referenced
[h264 @ 0x8dec5f0]non-existing PPS 194 referenced
[h264 @ 0x8dec5f0]decode_slice_header error
[h264 @ 0x8dec5f0]no frame!
[h264 @ 0x8de33a0]max_analyze_duration reached
[h264 @ 0x8de33a0]Estimating duration from bitrate, this may be inaccurate

Seems stream 0 codec frame rate differs from container frame rate: 50.00 (50/1) -> 25.00 (50/2)
Input #0, h264, from 'raw_video_h264.h264':
  Duration: N/A, bitrate: N/A
    Stream #0.0: Video: h264, yuv420p, 704x576, 25.20 fps, 25 tbr, 1200k tbn, 50 tbc
At least one output file must be specified

When using ffplay, the output is similar:

$ ffplay raw_video_h264.h264                                        
FFplay version SVN-r21221, Copyright (c) 2003-2010 Fabrice Bellard, et al.                  
  built on Jan 26 2010 19:19:28 with gcc 4.4.1                                              
  configuration: --enable-static --disable-shared --cpu=i686 --enable-pthreads --disable-ffserver --disable-vdpau --enable-gpl --enable-nonfree --enable-libmp3lame --enable-libfaac --enable-libx264 --enable-libxvid --prefix=/usr/local                
  libavutil     50. 7. 0 / 50. 7. 0                                                                                          
  libavcodec    52.47. 0 / 52.47. 0                                                                                          
  libavformat   52.47. 0 / 52.47. 0                                                                                          
  libavdevice   52. 2. 0 / 52. 2. 0                                                                                          
  libswscale     0. 8. 0 /  0. 8. 0                                                                                          
[NULL @ 0x8fce490]non-existing PPS referencedKB sq=    0B        
[h264 @ 0x8fce490]non-existing PPS 194 referenced
[h264 @ 0x8fce490]decode_slice_header error                  
[h264 @ 0x8fce490]no frame!                                                                                                  
[h264 @ 0x8fce490]non-existing PPS referenced                                      
[h264 @ 0x8fce490]non-existing PPS 194 referenced                              
[h264 @ 0x8fce490]decode_slice_header error                      
[h264 @ 0x8fce490]no frame!                                                                                                  
[h264 @ 0x8fce490]non-existing PPS referenced                              
[h264 @ 0x8fce490]non-existing PPS 194 referenced                      
[h264 @ 0x8fce490]decode_slice_header error                        
[h264 @ 0x8fce490]no frame!                                                                                                  
[h264 @ 0x8fce490]non-existing PPS referenced                            
[h264 @ 0x8fce490]non-existing PPS 194 referenced                    
[h264 @ 0x8fce490]decode_slice_header error          
[h264 @ 0x8fce490]no frame!                                                                                                  
[h264 @ 0x8fccc40]max_analyze_duration reached                                        
[h264 @ 0x8fccc40]Estimating duration from bitrate, this may be inaccurate            
Input #0, h264, from 'raw_video_h264.h264':                                                                                  
  Duration: N/A, bitrate: N/A                                                                                                
    Stream #0.0: Video: h264, yuv420p, 704x576, 25.20 fps, 25 tbr, 1200k tbn, 50 tbc
[h264 @ 0x8fce490]non-existing PPS 194 referenced
[h264 @ 0x8fce490]decode_slice_header error  
[h264 @ 0x8fce490]no frame!                                                                            
[h264 @ 0x8fce490]non-existing PPS 194 referenced                                  
[h264 @ 0x8fce490]decode_slice_header error
[h264 @ 0x8fce490]no frame!                                                                                                  
[h264 @ 0x8fce490]non-existing PPS 194 referenced
[h264 @ 0x8fce490]decode_slice_header error                  
[h264 @ 0x8fce490]no frame!                                                                                                  
[h264 @ 0x8fce490]non-existing PPS 194 referenced                            
[h264 @ 0x8fce490]decode_slice_header error                          
[h264 @ 0x8fce490]no frame!                        
...
However, it plays a video.

When I try to create a mov or mp4, I see the following output:

$ ffmpeg -i raw_video_h264.h264 -vcodec copy -f mp4 ffm_raw_video_h264.mp4
FFmpeg version SVN-r21768, Copyright (c) 2000-2010 Fabrice Bellard, et al.                        
  built on Feb 12 2010 11:00:01 with gcc 4.4.1                                                    
  configuration: --enable-static --disable-shared --cpu=i686 --enable-pthreads --disable-ffserver --disable-ffplay --disable-vdpau --enable-gpl --enable-nonfree --enable-libmp3lame --enable-libfaac --enable-libx264 --enable-libxvid --prefix=/usr/local              
  libavutil     50. 9. 0 / 50. 9. 0                                                                                          
  libavcodec    52.53. 0 / 52.53. 0                                                                                          
  libavformat   52.52. 0 / 52.52. 0                                                                                          
  libavdevice   52. 2. 0 / 52. 2. 0                                                                                          
  libswscale     0.10. 0 /  0.10. 0                                                                                          
[h264 @ 0x9ac65f0]non-existing PPS referenced                                                            
[h264 @ 0x9ac65f0]non-existing PPS 194 referenced                
[h264 @ 0x9ac65f0]decode_slice_header error                  
[h264 @ 0x9ac65f0]no frame!                                                                                                  
[h264 @ 0x9ac65f0]non-existing PPS referenced                                        
[h264 @ 0x9ac65f0]non-existing PPS 194 referenced                                        
[h264 @ 0x9ac65f0]decode_slice_header error                      
[h264 @ 0x9ac65f0]no frame!                                                                                                  
[h264 @ 0x9ac65f0]non-existing PPS referenced                                    
[h264 @ 0x9ac65f0]non-existing PPS 194 referenced                                    
[h264 @ 0x9ac65f0]decode_slice_header error                                    
[h264 @ 0x9ac65f0]no frame!                                                                                                  
[h264 @ 0x9ac65f0]non-existing PPS referenced                              
[h264 @ 0x9ac65f0]non-existing PPS 194 referenced                                        
[h264 @ 0x9ac65f0]decode_slice_header error                                    
[h264 @ 0x9ac65f0]no frame!                                                                                                  
[h264 @ 0x9abd3a0]max_analyze_duration reached                                                
[h264 @ 0x9abd3a0]Estimating duration from bitrate, this may be inaccurate                              

Seems stream 0 codec frame rate differs from container frame rate: 50.00 (50/1) -> 25.00 (50/2)
Input #0, h264, from 'raw_video_h264.h264':                                                    
  Duration: N/A, bitrate: N/A                                                                  
    Stream #0.0: Video: h264, yuv420p, 704x576, 25.20 fps, 25 tbr, 1200k tbn, 50 tbc          
Output #0, mp4, to 'ffm_raw_video_h264.mp4':                                                  
    Stream #0.0: Video: libx264, yuv420p, 704x576, q=2-31, 50 tbn, 25 tbc                      
Stream mapping:                                                                                
  Stream #0.0 -> #0.0                                                                          
Press [q] to stop encoding                                                                    
[NULL @ 0x9ac65f0]sps_id (32) out of range                                                    
[NULL @ 0x9ac65f0]sps_id out of range                                                          
[NULL @ 0x9ac65f0]non-existing PPS referenced                                                  
    Last message repeated 7 times                                                              
[NULL @ 0x9ac65f0]sps_id (32) out of range                                                    
[NULL @ 0x9ac65f0]sps_id out of range                                                          
[NULL @ 0x9ac65f0]non-existing PPS referenced                                                  
    Last message repeated 7 times                                                              
[NULL @ 0x9ac65f0]sps_id (32) out of range                                                    
[NULL @ 0x9ac65f0]sps_id out of range                                                          
[NULL @ 0x9ac65f0]non-existing PPS referenced                                                  
    Last message repeated 7 times                                                              
[NULL @ 0x9ac65f0]sps_id (32) out of range                                                    
[NULL @ 0x9ac65f0]sps_id out of range                                                          
[NULL @ 0x9ac65f0]non-existing PPS referenced                                                  
    Last message repeated 7 times                                                              
[NULL @ 0x9ac65f0]missing picture in access unit                                              
frame= 1144 fps=  0 q=-1.0 Lsize=   24667kB time=45.92 bitrate=4400.5kbits/s                  
video:24655kB audio:0kB global headers:0kB muxing overhead 0.050582%

However, when I try to play the resulting file, I get much much more messages 'about non-existing PPS referenced':

$ ffplay ffm_raw_video_h264.mp4
FFplay version SVN-r21221, Copyright (c) 2003-2010 Fabrice Bellard, et al.
  built on Jan 26 2010 19:19:28 with gcc 4.4.1                            
  configuration: --enable-static --disable-shared --cpu=i686 --enable-pthreads --disable-ffserver --disable-vdpau --enable-gpl --enable-nonfree --enable-libmp3lame --enable-libfaac --enable-libx264 --enable-libxvid --prefix=/usr/local                
  libavutil     50. 7. 0 / 50. 7. 0                                                                                          
  libavcodec    52.47. 0 / 52.47. 0                                                                                          
  libavformat   52.47. 0 / 52.47. 0                                                                                          
  libavdevice   52. 2. 0 / 52. 2. 0                                                                                          
  libswscale     0. 8. 0 /  0. 8. 0                                                                                          
[h264 @ 0x8bd5490]AVC: nal size 0                                                                                            
[h264 @ 0x8bd5490]no frame!                                                                                                  
[h264 @ 0x8bd5490]Missing reference picture                                                        
[h264 @ 0x8bd5490]decode_slice_header error                                                              
[h264 @ 0x8bd5490]concealing 1584 DC, 1584 AC, 1584 MV errors                                                  
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'ffm_raw_video_h264.mp4':                                                            
  Metadata:                                                                                                                  
    major_brand     : isom                                                                                                  
    minor_version   : 512                                                                                                    
    compatible_brands: isomiso2avc1mp41                
    encoder         : Lavf52.52.0                                                                                            
  Duration: 00:00:45.76, start: 0.000000, bitrate: 4415 kb/s                                    
    Stream #0.0(und): Video: h264, yuv420p, 704x576, 4414 kb/s, 25 fps, 25 tbr, 50 tbn, 100 tbc    
[h264 @ 0x8bd5490]AVC: nal size 0                                                                                            
[h264 @ 0x8bd5490]no frame!                                                                                                  
[h264 @ 0x8bd5490]Missing reference picture    
[h264 @ 0x8bd5490]decode_slice_header error                                      
[h264 @ 0x8bd5490]concealing 1584 DC, 1584 AC, 1584 MV errors                                  
[h264 @ 0x8bd5490]AVC: nal size 0
[h264 @ 0x8bd5490]no frame!                                                                                                  
[h264 @ 0x8bd5490]non-existing PPS 196 referenced                                                            
[h264 @ 0x8bd5490]decode_slice_header error                          
[h264 @ 0x8bd5490]no frame!                                                                                                  
[h264 @ 0x8bd5490]non-existing PPS 196 referenced                      
[h264 @ 0x8bd5490]decode_slice_header error                        
[h264 @ 0x8bd5490]no frame!                                                                                                  
[h264 @ 0x8bd5490]non-existing PPS 196 referenced                            
[h264 @ 0x8bd5490]decode_slice_header error                                    
[h264 @ 0x8bd5490]no frame!                                                                                                  
[h264 @ 0x8bd5490]non-existing PPS 196 referenced                    
[h264 @ 0x8bd5490]decode_slice_header error    
and so on.

During this I observe a gray window with small lighter or darker dots. If I add -vismv <number> to ffplay's command line, it draws arrows, but not a picture.
Reply | Threaded
Open this post in threaded view
|

Re: How can I convert raw H264 file to the MOV or MP4 format using -vcodec copy?

wl2776
Administrator
wl2776 wrote
Artur Bodera wrote
> Input #0, h264, from 'raw_video_h264':
>  Duration: N/A, bitrate: N/A
>    Stream #0.0: Video: h264, yuv420p, 704x576, 25 fps, 25 tbr, 1200k tbn,
> 50 tbc
Full command output please. It often helps a lot.
$ ffmpeg -i raw_video_h264.h264
Oups, I see the different versions of ffmpeg and ffplay and --disable-ffplay switch.
Will try the latest SVN revision and the same versions of ffmpeg and ffplay.
Reply | Threaded
Open this post in threaded view
|

Re: How can I convert raw H264 file to the MOV or MP4 format using -vcodec copy?

wl2776
Administrator
wl2776 wrote
wl2776 wrote
Artur Bodera wrote
Full command output please. It often helps a lot.
$ ffmpeg -i raw_video_h264.h264
Oups, I see the different versions of ffmpeg and ffplay and --disable-ffplay switch.
Will try the latest SVN revision and the same versions of ffmpeg and ffplay.
Both ffmpeg and ffplay have SVN-r21830 in their output.
Same negative result.