ChinaFFmpeg

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 14847|回复: 6

[Linux] ffmpeg实时转码udp发过来的ts流

[复制链接]
发表于 2014-6-10 10:11:24 | 显示全部楼层 |阅读模式
有一个编码盒子,能把输入的HDMI视频转码成h264+aac格式的流,并通过udp把ts流发出去, 可通过vlc 播放单播网络串流,指令为udp://@:1234用ffplay也可以播放,指令为ffplay udp://@1234  ,  我想把这实时的ts流通过ffmpeg分片成10s时长的mp4文件保存在本地,并生成m3u8 播放列表文件。
通过看ffmpeg的document ,https://trac.ffmpeg.org/wiki/StreamingGuide
按照这个网址的这段话来确认命令行格式,The command line I use to pull the stream from port 5000, transcode it, and push it is: ffmpeg -i 'udp://localhost:5000?fifo_size=1000000&overrun_nonfatal=1' -crf 30 -preset ultrafast -acodec aac -strict experimental -ar 44100 -ac 2 -b:a 96k -vcodec libx264 -r 25 -b:v 500k -f flv 'rtmp://<wowza server IP>/live/cam0'
我的命令行格式是 ffmpeg -i 'udp://localhost:1234?fifo_size=1000000&overrun_nonfatal=1' -c:v copy -c:a libfaac udp.mp4
报错额 提示未发现指令-c:v , 正确的指令该是怎样的呢?
tcpdump udp port 1234  1234端口是有数据过来的,ffplay也能播放udp数据,但ffmpeg转码udp数据就有问题,恳请指教。

回复

使用道具 举报

发表于 2014-6-10 10:33:53 | 显示全部楼层
-c:v 改成 -vcodec copy试试?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-6-10 10:56:35 | 显示全部楼层
ffmpeg -i 'udp://@:10086?fifo_size=1000000&overrun_nonfatal=1' -c:v copy -c:a copy udp.ts
输出文件是ts格式就没问题, 但udp.mp4 就有问题
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-6-10 11:01:55 | 显示全部楼层
ffmpeg -i 'udp://@:10086?fifo_size=1000000&overrun_nonfatal=1' -c:v copy -c:a copy -map 0 -bsf h264_mp4toannexb  -f segment -segment_list outputts.m3u8 -segment_format mpeg_ts -segment_time 10 output-%03d.ts
这指令无法运行 ,我本意是将udp发过来的数据 分片的
回复 支持 反对

使用道具 举报

发表于 2014-6-10 11:05:48 | 显示全部楼层
你可以将你的命令行输出发出来看一下
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-6-10 11:17:59 | 显示全部楼层
孙悟空 发表于 2014-6-10 10:33
-c:v 改成 -vcodec copy试试?

ffmpeg -i 'udp://@:10086?fifo_size=1000000&overrun_nonfatal=1' -vcodec copy -acodec copy -map 0 -f segment -segment_list outputmp4.m3u8 -segment_format mp4 -segment_time 10 output-%03d.mp4  但格式改成mp4以后就无法分片了 甚至保存单个文件都不行 ffmpeg -i 'udp://@:10086?fifo_size=1000000&overrun_nonfatal=1' -vcodec copy -acodec copy udp.mp4
如果是ts格式,保存为一个文件或者分片文件都是可以的:
ffmpeg -i 'udp://@:10086?fifo_size=1000000&overrun_nonfatal=1' -vcodec copy -acodec copy udp.ts
ffmpeg -i 'udp://@:10086?fifo_size=1000000&overrun_nonfatal=1' -vcodec copy -acodec copy -map 0 -f segment -segment_list outputts.m3u8 -segment_format mpeg_ts -segment_time 10 output-%03d.ts

回复 支持 反对

使用道具 举报

发表于 2014-6-10 11:22:14 | 显示全部楼层
保存mp4有没有console输出呢?看一下输出了什么
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|Archiver|ChinaFFmpeg

GMT+8, 2024-12-27 14:01 , Processed in 0.053329 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表