我想把RTSP流转储到一个文件中。
ffmpeg -y-i rtsp://172.19.12.37/live.sdp -acodec copy -vcodec copy tmp.mp4
但是我有错误,
[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
然而,我可以通过任何媒体播放器播放RTSP流媒体,我的ffmpeg命令出了什么问题?
是否有任何选项可以转储任何流并将其转储为相同的视频格式。
ffplay日志
$ 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日志
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
[mp4 @ 0x7fe98400dc00] track 1: could not find tag, codec not currently supported in container
这意味着在MP4输出容器格式中不允许pcm_mulaw
。您的选择是:
使用不同的输出容器格式
ffmpeg -i input -codec copy output.mkv
或者重新编码音频
ffmpeg -i input -c:v copy -c:a aac output.mp4