"ffmpeg" cannot record the RTSP stream, but "ffplay" can play it

I want to dump the RTSP stream to 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 RTSP streams with any media player, what was wrong with my ffmpeg command?

Are there any options that can dump any stream and upload it to the same 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
+4
source share
1 answer

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

This means that it is pcm_mulawnot allowed in the MP4 output container format. Your choice:

Use a different output container format

ffmpeg -i input -codec copy output.mkv

Or transcode audio

ffmpeg -i input -c:v copy -c:a aac output.mp4
+5
source

Source: https://habr.com/ru/post/1531291/


All Articles