Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

`ffmpeg` can not dump RTSP streaming but `ffplay` can play it

Tags:

video

ffmpeg

I want to dump the RTSP streaming into a file.

ffmpeg -y-i rtsp://172.19.12.37/live.sdp -acodec copy -vcodec copy tmp.mp4

But I got errors,

[mp4 @ 0x7fe98400dc00] track 1: could not find tag, codec not currently supported in container

Could not write header for output file #0 (incorrect codec parameters ?): Operation not permitted

However, I can play the RTSP streaming by any media player, what was wrong with my ffmpeg command ?

Is there any options can dump any stream and dump it into identical video format.

ffplay log

$ ffplay rtsp://172.19.12.37/live.sdp
ffplay version 2.1.4 Copyright (c) 2003-2014 the FFmpeg developers
  built on Mar 12 2014 14:37:48 with Apple LLVM version 5.1 (clang-503.0.38) (based on LLVM 3.4svn)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/2.1.4 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-avresample --enable-vda --cc=clang --host-cflags= --host-ldflags= --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libxvid --enable-libfreetype --enable-libtheora --enable-libvorbis --enable-libvpx --enable-librtmp --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvo-aacenc --enable-libass --enable-ffplay --enable-libspeex --enable-libschroedinger --enable-libfdk-aac --enable-openssl --enable-libopus --enable-frei0r --enable-libcaca --enable-libquvi --enable-libopenjpeg --extra-cflags='-I/usr/local/Cellar/openjpeg/1.5.1/include/openjpeg-1.5 '
  libavutil      52. 48.101 / 52. 48.101
  libavcodec     55. 39.101 / 55. 39.101
  libavformat    55. 19.104 / 55. 19.104
  libavdevice    55.  5.100 / 55.  5.100
  libavfilter     3. 90.100 /  3. 90.100
  libavresample   1.  1.  0 /  1.  1.  0
  libswscale      2.  5.101 /  2.  5.101
  libswresample   0. 17.104 /  0. 17.104
  libpostproc    52.  3.100 / 52.  3.100
[h264 @ 0x7fb966001c00] RTP: missed 13 packets0KB sq=    0B f=0/0
[h264 @ 0x7fb966001c00] left block unavailable for requested intra mode at 0 86
[h264 @ 0x7fb966001c00] error while decoding MB 0 86, bytestream (347)
[h264 @ 0x7fb966001c00] concealing 5489 DC, 5489 AC, 5489 MV errors in I frame
Input #0, rtsp, from 'rtsp://172.19.12.37/live.sdp':=    0B f=0/0
  Metadata:
    title           : RTSP server
  Duration: N/A, start: 0.000000, bitrate: 64 kb/s
    Stream #0:0: Video: h264 (Main), yuv420p, 2560x1920, 13.33 tbr, 90k tbn, 180k tbc
    Stream #0:1: Audio: pcm_mulaw, 8000 Hz, 1 channels, s16, 64 kb/s
[h264 @ 0x7fb966888400] left block unavailable for requested intra mode at 0 86
[h264 @ 0x7fb966888400] error while decoding MB 0 86, bytestream (347)
[h264 @ 0x7fb966888400] concealing 5489 DC, 5489 AC, 5489 MV errors in I frame
   5.08 A-V:    nan fd=   2 aq=    0KB vq=    0KB sq=    0B f=1/1

ffmpeg log

ffmpeg version 2.1.4 Copyright (c) 2000-2014 the FFmpeg developers
  built on Mar 12 2014 14:37:48 with Apple LLVM version 5.1 (clang-503.0.38) (based on LLVM 3.4svn)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/2.1.4 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-avresample --enable-vda --cc=clang --host-cflags= --host-ldflags= --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libxvid --enable-libfreetype --enable-libtheora --enable-libvorbis --enable-libvpx --enable-librtmp --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvo-aacenc --enable-libass --enable-ffplay --enable-libspeex --enable-libschroedinger --enable-libfdk-aac --enable-openssl --enable-libopus --enable-frei0r --enable-libcaca --enable-libquvi --enable-libopenjpeg --extra-cflags='-I/usr/local/Cellar/openjpeg/1.5.1/include/openjpeg-1.5 '
  libavutil      52. 48.101 / 52. 48.101
  libavcodec     55. 39.101 / 55. 39.101
  libavformat    55. 19.104 / 55. 19.104
  libavdevice    55.  5.100 / 55.  5.100
  libavfilter     3. 90.100 /  3. 90.100
  libavresample   1.  1.  0 /  1.  1.  0
  libswscale      2.  5.101 /  2.  5.101
  libswresample   0. 17.104 /  0. 17.104
  libpostproc    52.  3.100 / 52.  3.100
Guessed Channel Layout for  Input Stream #0.1 : mono
Input #0, rtsp, from 'rtsp://172.19.12.37/live.sdp':
  Metadata:
    title           : RTSP server
  Duration: N/A, start: 0.000000, bitrate: 64 kb/s
    Stream #0:0: Video: h264 (Main), yuv420p, 2560x1920, 13.33 tbr, 90k tbn, 180k tbc
    Stream #0:1: Audio: pcm_mulaw, 8000 Hz, mono, s16, 64 kb/s
[mp4 @ 0x7fe98400dc00] track 1: could not find tag, codec not currently supported in container
Output #0, mp4, to 'tmp.mp4':
  Metadata:
    title           : RTSP server
    encoder         : Lavf55.19.104
    Stream #0:0: Video: h264 ([33][0][0][0] / 0x0021), yuv420p, 2560x1920, q=2-31, 90k tbn, 90k tbc
    Stream #0:1: Audio: pcm_mulaw, 8000 Hz, mono, 64 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (copy)
Could not write header for output file #0 (incorrect codec parameters ?): Operation not permitted
like image 218
newBike Avatar asked Mar 12 '14 08:03

newBike


People also ask

How do I Restream with FFmpeg?

To re-stream using FFmpeg, use the -re option when encoding the video file for Wowza Streaming Engine™ media server software. The -re option instructs the encoder to read the source at its native frame rate.


Video Answer


1 Answers

[mp4 @ 0x7fe98400dc00] track 1: could not find tag, codec not currently supported in container

This means that pcm_mulaw is not allowed in the MP4 output container format. Your choices are:

Use a different output container format

ffmpeg -i input -codec copy output.mkv

Or re-encode the audio

ffmpeg -i input -c:v copy -c:a aac output.mp4
like image 169
llogan Avatar answered Nov 15 '22 07:11

llogan