我想使用ffmpeg将RTP流转换为MP4(HTTP)流,这样我就可以在html视频标签中播放,
但我只能成功地转码到flv格式。
下面是我的设置:
...
<Feed feed1.ffm>
File /tmp/feed1.ffm
FileMaxSize 5M
ACL allow localhost
</Feed>
<Stream flv>
Feed feed1.ffm
Format flv
VideoFrameRate 40
VideoBitRate 128
VideoSize 1920x1080
AVOptionVideo flags +global_header
AudioBitRate 24
AudioChannels 2
AudioSampleRate 44100
AVOptionAudio flags +global_header
</Stream>
<Stream mp4>
Feed feed1.ffm
Format mp4
VideoFrameRate 40
VideoBitRate 128
VideoSize 1920x1080
AVOptionVideo flags +global_header
AudioBitRate 24
AudioChannels 2
AudioSampleRate 44100
AVOptionAudio flags +global_header
</Stream>
<Stream avi>
Feed feed1.ffm
Format avi
VideoFrameRate 40
VideoBitRate 128
VideoSize 1920x1080
AVOptionVideo flags +global_header
AudioBitRate 24
AudioChannels 2
AudioSampleRate 44100
AVOptionAudio flags +global_header
</Stream>
$ ffserver -d -f /etc/ffserver.conf
$ ffmpeg -i MY_RTP_SOURCE http://localhost:8090/feed1.ffm
“其他信息”
$ ffprobe -i MY_RTP_SOURCE Input #0, rtp, from 'MY_RTP_SOURCE': Duration: N/A, start: 47175.696200, bitrate: N/A Program 1 Stream #0:1: Video: h264 (High) (HDMV / 0x564D4448), yuv420p, 1920x1080, 25 tbr, 90k tbn Stream #0:0: Audio: aac (LC), 44100 Hz, stereo, fltp, 255 kb/s
Wed Feb 17 17:09:16 2016 127.0.0.1 - - New connection: GET /avi Wed Feb 17 17:09:16 2016 [avi @ 0x7fac8b800150]Too large number of skipped frames 873420092564 > 60000 Wed Feb 17 17:09:16 2016 Error writing frame to output for stream 'avi': Invalid argument Wed Feb 17 17:09:16 2016 [avi @ 0x7fac8b800150]Too large number of skipped frames 873420092564 > 60000 Wed Feb 17 17:09:16 2016 127.0.0.1 - - [GET] "/avi HTTP/1.1" 200 2598
Wed Feb 17 17:09:56 2016 127.0.0.1 - - New connection: GET /mp4 Wed Feb 17 17:09:56 2016 [mp4 @ 0x7fac8c000150]muxer does not support non seekable output Wed Feb 17 17:09:56 2016 Error writing output header for stream 'mp4': Invalid argument Wed Feb 17 17:09:56 2016 127.0.0.1 - - [GET] "/mp4 HTTP/1.1" 200 62
ffmpeg version 2.8.6 Copyright (c) 2000-2016 the FFmpeg developers built with Apple LLVM version 7.0.2 (clang-700.1.81) configuration: --prefix=/usr/local/Cellar/ffmpeg/2.8.6 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-opencl --enable-libx264 --enable-libmp3lame --enable-libvo-aacenc --enable-libxvid --enable-vda libavutil 54. 31.100 / 54. 31.100 libavcodec 56. 60.100 / 56. 60.100 libavformat 56. 40.101 / 56. 40.101 libavdevice 56. 4.100 / 56. 4.100 libavfilter 5. 40.101 / 5. 40.101 libavresample 2. 1. 0 / 2. 1. 0 libswscale 3. 1.101 / 3. 1.101 libswresample 1. 2.101 / 1. 2.101 libpostproc 53. 3.100 / 53. 3.100
如果有人知道如何解决或需要更多的信息,请告诉我,谢谢!
使用ffserver(将rtp流转换为http)+videojs(用html播放flv视频)
HTTPPort 8090
HTTPBindAddress 0.0.0.0
MaxHTTPConnections 2000
MaxClients 1000
MaxBandwidth 40000
CustomLog -
UseDefaults
<Feed feed1.ffm>
File /tmp/feed1.ffm
FileMaxSize 50M
</Feed>
<Stream stream>
Feed feed1.ffm
Format flv
VideoFrameRate 24
VideoBitRate 32768
VideoSize 1280x720
AVOptionVideo flags +global_header
AudioBitRate 24
AudioChannels 1
AudioSampleRate 44100
AVOptionAudio flags +global_header
</Stream>
$ffserver-d-f/etc/ffserver.conf
$ffmpeg-i rtp://my_rtp_resource http://localhost:8090/feed1.ffm
<head>
<link href="http://vjs.zencdn.net/c/video-js.css" rel="stylesheet">
<script src="http://vjs.zencdn.net/c/video.js"></script>
</head>
<body>
<video id="video1" class="video-js vjs-default-skin" width="640" height="360"
data-setup='{"controls" : true, "autoplay" : true, "preload" : "auto"}'>
<source src="http://10.10.3.108:8090/stream" type="video/x-flv">
</video>
</body>
1. Gradle 2.代码 3、Logcat: 采用gcc 4.9构建。x(GCC)20150123(预发布)配置:---目标操作系统=linux--交叉前缀=/root/bravobit/ffmpeg-android/toolschain-android/bin/arm-linux-androideabi---arch=arm--cpu=cortex-a8--启用运行时cpudetec--sy
有没有办法告诉ffmpg将动画gif转换为比动画gif运行时间更长的mp4?Les说gif是4秒长的设置,可以像动画gif一样重复,但我需要10秒mp4。我将如何在ffmpg中实现它。我当前的转换行如下所示: ffmpeg-i$i.gif-c:v libx264-pix_fmt yuv420p-crf 4-b:v 300K-vf scale=320:-1-movflags faststart$i.
我设置了一个相机预览与onPreviewFrame回调,我想知道,“如何编码onPreviewFrame数据到一个mp4视频文件?” 谢谢,如果有任何评论、意见或建议,我们将不胜感激,
我曾尝试使用GStreamer管道将mp4视频转换为avi视频,但它是在没有声音的情况下转换的 gst launch-t-v filesrc location=源。mp4!qtdemux!ffdec\U h264!视频/x-raw-yuv!avimux!filesink location=结果yuv。avi公司
我试图理解MP4视频如何在在线流媒体中通过RTP进行分割(它是用H.264编解码器编码的)。有一些工具,比如FFMPEG或MP4box,或者我们可以使用ISO格式本身[moov,moof和mdat对]进行流媒体传输。我想知道的是,这些工具将如何分割视频中的mdat部分?他们会将MP4视频的所有单元(一组视频和音频帧)分离,并将它们与相关moov部分合并成一个片段,还是以其他方式进行? 还是使用H2
我正试图在浏览器中显示mp4视频。原始文件具有AVI容器格式。我可以成功地转换到mp4和目标文件是可读的(视频+声音)与图腾电影播放器。所以我想显示贝娄页面一切都会好的 $ffmpeg-y-fflags+genpts-i input.avi-acodec copy-vcodec copy ouput.mp4 打开上面的html文件会播放声音,但不会显示视频。