[Ffmpeg-devel-irc] ffmpeg.log.20141221

burek burek021 at gmail.com
Mon Dec 22 02:05:01 CET 2014


[00:10] <squeegily> I have some anime fansubs I want to convert to MP4s so they can be played by a PS3. The video stream is "h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], q=-1--1, 23.98 fps, 24k tbn, 23.98 tbc (default)"
[00:11] <squeegily> Will simply running ffmpeg -i input.mkv -vf subtitles=input.mkv -c:a copy output.mp4 create a video file with acceptable quality?
[00:12] <squeegily> I'm concerned that the recoding process will be hell on the video and really destroy the video quality.. I know that with JPEG images, using the same quality settings as the original image when resaving will reduce the damage significantly - is there anything similar for H.264?
[00:42] <c_14> The defaults for x264 are decent. If you don't like the default, -crf 18 is usually considered visually lossless.
[00:45] <c_14> https://trac.ffmpeg.org/wiki/Encode/H.264
[00:45] <c_14> and he was gone
[02:14] <justinX> squeegily: you mean like analysing a file to find out what quality settings it was created with?
[11:56] <terr1> I have a .ts file recorded from a dvb-c box (MPEG-4 H264). However when played on PC it has wrong timestamps (playtime) shows as 15 hours instead of 1 hour for example.. I found a windows app "TS Doctor" that seems to be able to clean it up, does ffmpeg have the same capability? Any tips to any cmd options i should play with?
[12:58] <DelphiWorld> yo
[12:59] <DelphiWorld> can't ffmpeg decode dvbsub?
[13:01] <relaxed> yes
[13:02] <iive> it can
[13:02] <DelphiWorld> relaxed: it say unknowne codec for stream id 3
[13:02] <relaxed> pastebin
[13:06] <DelphiWorld> here's the ffprobe result:
[13:06] <DelphiWorld> http://paste.ubuntu.com/9587871/
[13:09] <DelphiWorld> ffmpeg -re -i (url) -map 0:0 -map 0:1 -map 0:2 -map 0:3 -f mpegts out.ts
[13:09] <DelphiWorld> give: Encoder (codec none) not found for output stream #0:3
[13:09] <DelphiWorld> relaxed: if you want the url i could give it
[13:10] <relaxed> I don't think teletext can be decoded/encoded.
[13:10] <relaxed> ffmpeg -codecs 2>&1| grep dvb
[13:11] <DelphiWorld> DES... dvb_subtitle         DVB subtitles (decoders: dvbsub ) (encoders: dvbsub)
[13:11] <DelphiWorld> ..S... dvb_teletext         DVB teletext
[13:12] <relaxed> Right, the "D" and "E" stand for decode/encode.
[13:12] <DelphiWorld> i know, but why i'm unable to do it then?
[13:13] <relaxed> Do you need teletext? Just omit that stream.
[13:14] <DelphiWorld> relaxed: do you think this one is for EPG? or subtitling
[13:14] <relaxed> You've never been in a sports bar and seen teletext in action?
[13:15] <DelphiWorld> relaxed: you're talking to a blind person
[13:15] <DelphiWorld> who rely on audio
[13:15] <relaxed> Sorry, wasn't aware of that.
[13:16] <DelphiWorld> relaxed: hehehe that's not a problem at all
[13:17] <relaxed> DelphiWorld: did you try copying the teletext stream? What are you trying to do?
[13:18] <DelphiWorld> relaxed: trying to encode this mpeg2TS stream from satellite into HLS (H.264/AAC) and feeting them into a mpeg2TS stream
[13:18] <relaxed> Ok, then either try to copy that stream or omit it.
[13:19] <DelphiWorld> relaxed: ok, i will copy and let you know
[13:22] <DelphiWorld> relaxed, i map it (using: -map 0:3) but how do i copy it?
[13:27] <relaxed> -c:s copy
[13:27] <DelphiWorld> now i have:
[13:28] <DelphiWorld> [mpegts @ 0x29418c0] AAC bitstream not in ADTS format and extradata missing     av_interleaved_write_frame(): Invalid data found when processing input
[13:59] <c_14> DelphiWorld: try adding -flags +global_header
[14:00] <DelphiWorld> c_14: ok ;)
[14:13] <DelphiWorld> c_14, -flags +global_header in the output chain, right?
[14:13] <c_14> ye
[14:19] <DelphiWorld> c_14: in or out?
[14:19] <c_14> out
[14:19] <DelphiWorld> ffmpeg -re -i http://172.16.32.2:8111/bysid/50376 -map 0:0 -map 0:1 -map 0:2 -map 0:3 -threads 1 -flags +global_header -c:v libx264 -pix_fmt yuv420p -vf yadif=2:-1:0 -bsf h264_mp4toannexb -aspect 16:9 -profile:v main -level:v 3.1 -g 50 -r 29.97 -s 720x576 -vb 1000k -preset superfast -tune zerolatency -tune fastdecode -c:s copy -c:a libfdk_aac -ab 64k -ar 48k -ac 2 -f mp4 -f mpegts out.ts
[14:24] <c_14> Should work, does it give you an error?
[14:24] <DelphiWorld> if i use ffmpeg to do hls, will ffmpeg autoclean the old ts files?
[14:25] <c_14> If you use hls_wrap, yes
[14:26] <DelphiWorld> c_14: good, but at i can see -hls is not accepting multi streams...
[14:26] <DelphiWorld> ffmpeg -re -i http://172.16.32.2:8111/bysid/50376 -map 0:0 -map 0:1 -map 0:2 -map 0:3 -threads 1 -flags +global_header -c:v libx264 -pix_fmt yuv420p -vf yadif=2:-1:0 -aspect 16:9 -profile:v main -level:v 3.1 -g 50 -r 29.97 -s 720x576 -vb 1000k -preset superfast -tune zerolatency -tune fastdecode -c:s copy -c:a libfdk_aac -ab 64k -ar 48k -ac 2 -f hls bt.m3u8
[14:27] <DelphiWorld> asking me to:
[14:27] <DelphiWorld> [mpegts @ 0x22dc040] H.264 bitstream malformed, no startcode found, use the h264
[14:27] <DelphiWorld> _mp4toannexb bitstream filter (-bsf h264_mp4toannexb)
[14:28] <c_14> Have you tried adding '-bsf h264_mp4toannexb' as an output option?
[14:28] <DelphiWorld> yep, message the same
[14:28] <DelphiWorld> let me post the command
[14:29] <DelphiWorld> ffmpeg -re -i http://172.16.32.2:8111/bysid/50376 -map 0:0 -map 0:1 -map 0:2 -map 0:3 -threads 1 -flags +global_header -c:v libx264 -pix_fmt yuv420p -vf yadif=2:-1:0 -aspect 16:9 -profile:v main -level:v 3.1 -g 50 -r 29.97 -s 720x576 -vb 1000k -preset superfast -tune zerolatency -tune fastdecode -c:s copy -c:a libfdk_aac -ab 64k -ar 48k -ac 2 -bsf h264_mp4toannexb -f hls bt.m3u8
[14:29] <DelphiWorld> error stay the sam
[14:30] <DelphiWorld> same
[14:36] <c_14> try changing -flags to -flags:a and -bsf to -bsf:v
[14:36] <c_14> Probably won't do anything but might help.
[14:39] <DelphiWorld> ffmpeg -re -i http://172.16.32.2:8111/bysid/50376 -map 0:0 -map 0:1 -map 0:2  -threads 1 -flags:a +global_header -c:v libx264 -pix_fmt yuv420p -vf yadif=2:-1:0 -aspect 16:9 -profile:v main -level:v 3.1 -g 50 -r 29.97 -s 720x576 -vb 1000k -preset superfast -tune zerolatency -tune fastdecode -c:a libfdk_aac -ab 64k -ar 48k -ac 2 -bsf:v h264_mp4toannexb -f hls bt.m3u8
[14:40] Action: DelphiWorld love c_14
[14:40] <c_14> That worked?
[15:07] <targitaj> hello! can you help me, what server is the best for rtmp using on windows
[15:08] <targitaj> I have problems with adobe
[15:08] <targitaj> Unreal Media Server has an error - HandShake: client signature does not match!
[15:09] <targitaj> may be some one can help me
[15:15] Last message repeated 1 time(s).
[23:22] <luc4> Hello! Im crossbuilding ffmpeg for an embedded platform. Everything seems to work until I add libssh support. This is what I get: https://paste.kde.org/popxielzq. What I notice is that, at the end, pthread is searched in /lib/arm-linux-gnueabihf/libpthread.so.0, which is incorrect, as it should be searched in the sysroot. Any idea why?
[23:23] <c_14> Check your .pc files
[23:24] <c_14> pkg-config --libs --cflags libssh; also pkg-config --exists --print-errors libssh
[23:26] <luc4> c_14: Output of the first command is  -L/usr/lib/arm-linux-gnueabihf -lssh, which is probably wrong&
[23:28] <c_14> You'll have to modify the .pc files or create new one's somewhere in front of those in PKG_CONFIG_PATH
[23:29] <luc4> c_14: but& Im totally ignorant about pkg-config& Im comparing with those from sqlite3 for instance& seem to be similar&
[23:29] <c_14> -'
[23:31] <c_14> You should probably just have to modify the prefix so it points to the correct /lib path
[23:33] <luc4> c_14: I suppose Ill have to study pkg-config sooner or later. But how comes that the sysroot is prepended? I cant place the absolute path in there as it should be relative to the sysroot...
[23:33] <c_14> hmm?
[23:34] <luc4> c_14: seems to work anyway...
[23:36] <luc4> c_14: just out of curiosity: https://paste.kde.org/pyyyezi7b. This is from sqlite3.pc. This seems to work correctly& But I see Libs: -L${libdir} -lsqlite3, with libdir being /usr/lib/& Somewhere in the build process, this path will be prepended with the appropriate sysroot& right?
[23:37] <c_14> What do you mean with sysroot?
[23:38] <luc4> c_14: Im crossbuilding, so the entire root with all the system libs is in /opt/whatever/etc.
[23:38] <luc4> This is the one from libssh https://paste.kde.org/pdf5lnbmy
[23:38] <luc4> Seems to be more or less the same.
[23:39] <luc4> Location is always set relative to the root. Somehow the compiler prepends the path to the sysroot. But how comes this happens for sqlite3 and not for libssh?
[23:39] <luc4> Sorry, I meant Somehow the compiler prepends the path OF the sysroot
[23:42] <c_14> Are you worried that it's linking against the host libs instead of the target libs?
[23:44] <luc4> c_14: No, I know it works as Ive been using it for long time. Im just trying to understand. sqlite3 seems to work correctly for some reason, but the path I see in the .pc file is /usr/lib/arm-linux-gnueabihf. Which clearly does not exist in my host system. So I guess the compiler prepends the sysroot (which is passed via sysroot). Is this correct?
[23:45] <c_14> Technically it's the linker, but yes.
[23:45] <luc4> c_14: sorry, I know it is OT, but if you can clarify Id say thank you :-)
[23:45] <luc4> c_14: ok, now, why isnt the same happening for libssh?
[23:46] <c_14> Presumably because the paths are wrong somewhere. As in the linker can't find what it's supposed to be finding.
[23:46] <luc4> Library path is always /usr/lib/arm-linux-gnueabihf, as before. The linker should prepend the sysroot as before.
[23:47] <luc4> c_14: but if you look at the first link, the error results from a command where sysroot is passed correctly...
[23:47] <luc4> c_14: so it is not clear whether the .pc file is really wrong or not...
[23:47] <luc4> c_14: maybe something wrong in the configure? But still I dont understand clearly what&
[23:52] <c_14> >-L/opt/rpi/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/../arm-linux-gnueabihf/libc/usr/lib/arm-linux-gnueabihf
[23:52] <c_14> this doesn't look correct...
[23:54] <luc4> c_14: /opt/rpi/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/../arm-linux-gnueabihf/libc/usr/lib/arm-linux-gnueabihf exists.
[23:54] <luc4> It is a directory.
[23:54] <c_14> ok
[23:54] <c_14> what a path
[23:55] <luc4> c_14: I think it is a standard linaro toolchain&
[23:55] <luc4> c_14: apart from the /opt/rpi of course
[23:57] <c_14> Where would libpthread.so.0 be in /opt/rpi/foo/bar ?
[23:59] <luc4> c_14: that is actually both in the toolchain and in the sysroot of course.
[00:00] --- Mon Dec 22 2014


More information about the Ffmpeg-devel-irc mailing list